项目简介
本项目运用Java语言,通过分治法、动态规划等算法思想,实现了四个经典的算法问题,分别是棋盘覆盖问题、循环赛日程安排问题、背包问题和流水作业调度问题。
项目的主要特性和功能
- 棋盘覆盖问题:利用分治法,递归划分棋盘为特殊方格所在区块和普通区块,在普通区块交汇处放置L型骨牌。用户输入棋盘边长和特殊方格坐标,程序输出覆盖后的棋盘。
- 循环赛日程安排问题:采用分治法,将问题递归为最小为2个选手的子问题来生成循环赛日程表。用户输入参赛选手数量,程序输出循环赛日程安排。
- 背包问题:运用动态规划思想,解决在有限背包容量下选择物品以最大化总价值的问题。用户输入物品数量、背包容量、物品价值和重量,程序输出最佳选择方案和总价值。
- 流水作业调度问题:使用Johnson算法,找出两个工作中心执行任务的最佳序列。用户输入作业数量和每个作业的工作量,程序输出最佳调度序列和总工作时间。
安装使用步骤
- 假设用户已经下载了本项目的源码文件。
- 编译和运行:
- 进入项目目录:
bash cd Algorithm-Assignment
- 编译Java文件:
bash javac -d bin src/com/company/*.java src/com/caffeineshawn/*.java
- 运行程序:
bash java -cp bin com.company.Main
- 输入参数:根据程序提示,输入相应的参数,如棋盘边长、特殊方格坐标、参赛选手数量、物品数量、背包容量等。
- 查看输出结果:程序将输出相应的覆盖棋盘、循环赛日程、背包选择方案和流水作业调度结果。
- 退出程序:输入任意字符并回车,程序将退出。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】