資源簡介
機器調度問題 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? 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
評論
共有 條評論