• 大小: 3KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: Java
  • 标签: java  高级算法  

资源简介

机器调度问题 java 高级算法 研究生课程作业

资源截图

代码片段和文件信息

package cn.homework;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/***
 * 
 * @author szf
 *
 */
public class ListScheduling {
//2 6 10 8 3 1 7 5
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int machineCount = cin.nextInt();
int jobCount = cin.nextInt();
List jobs = new ArrayList();
for (int i = 0; i < jobCount; ++i) {
jobs.add(cin.nextInt());
}
baseListSchedule Lpt = new LPT(machineCount jobs);
Lpt.listSchedule();
System.out.println(Lpt);
}
}

class LPT extends baseListSchedule {
public LPT(int machineCount List jobs) {
super(machineCount jobs);
}

@Override
void listSchedule() {
Collections.sort(this.getJobs() Collections.reverseOrder());
this.resetMachineTimes();
this.resetMachineJob();
while (this.getJobs().size() > 0) {
int newJob = this.getJobs().get(0);
this.getJobs().remove(0);
int earliestEndMachineTime = Collections.min(this.getMachineTime());
int earliestEndMachineIndex = this.getMachineTime().indexOf(earliestEndMachineTime);
this.getMachineTime().set(earliestEndMachineIndex
this.getMachineTime().get(earliestEndMachineIndex) + newJob);
this.getMachineJob().get(earliestEndMachineIndex).add(newJob);
}

}

}

abstract class baseListSchedule {
protected int machineCount = 0;
protected List jobs = null;
protected List machineTime = null;
protected List> machineJob = null;

public List getMachineTime() {
return machineTime;
}

public void setMachineTime(List machineTime) {
this.machineTime = machineTime;
}

public B

评论

共有 条评论