littlebot
Published on 2025-04-11 / 1 Visits
0

【源码】基于Java的算法问题集

项目简介

本项目运用Java语言,通过分治法、动态规划等算法思想,实现了四个经典的算法问题,分别是棋盘覆盖问题、循环赛日程安排问题、背包问题和流水作业调度问题。

项目的主要特性和功能

  1. 棋盘覆盖问题:利用分治法,递归划分棋盘为特殊方格所在区块和普通区块,在普通区块交汇处放置L型骨牌。用户输入棋盘边长和特殊方格坐标,程序输出覆盖后的棋盘。
  2. 循环赛日程安排问题:采用分治法,将问题递归为最小为2个选手的子问题来生成循环赛日程表。用户输入参赛选手数量,程序输出循环赛日程安排。
  3. 背包问题:运用动态规划思想,解决在有限背包容量下选择物品以最大化总价值的问题。用户输入物品数量、背包容量、物品价值和重量,程序输出最佳选择方案和总价值。
  4. 流水作业调度问题:使用Johnson算法,找出两个工作中心执行任务的最佳序列。用户输入作业数量和每个作业的工作量,程序输出最佳调度序列和总工作时间。

安装使用步骤

  1. 假设用户已经下载了本项目的源码文件。
  2. 编译和运行
  3. 进入项目目录: bash cd Algorithm-Assignment
  4. 编译Java文件: bash javac -d bin src/com/company/*.java src/com/caffeineshawn/*.java
  5. 运行程序: bash java -cp bin com.company.Main
  6. 输入参数:根据程序提示,输入相应的参数,如棋盘边长、特殊方格坐标、参赛选手数量、物品数量、背包容量等。
  7. 查看输出结果:程序将输出相应的覆盖棋盘、循环赛日程、背包选择方案和流水作业调度结果。
  8. 退出程序:输入任意字符并回车,程序将退出。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】