📄 job.java
字号:
public class Job {
public static int greedy(int []a,int m)
{
int n=a.length-1;
int sum=0;
if (n<=m) {
for (int i=0;i<n;i++) sum+=a[i];
System.out.println("为每个作业分配一台机器.");
return sum;
}
JobNode [] d=new JobNode[n];
for (int i=0;i<n;i++)
d[i]=new JobNode(i+1,a[i+1]);
MergeSort.mergeSort(d,0,d.length-1);
MinHeap H=new MinHeap(m);
for (int i=1;i<=m;i++) {
MachineNode x=new MachineNode(i,0);
H.put(x);
}
for (int i=n;i>=1;i--) {
MachineNode x=(MachineNode)H.removeMin();
System.out.println("将机器"+x.id+"从"+x.avail+"到"
+(x.avail+d[i-1].time)+"的时间段分配给作业"+d[i-1].id);
x.avail+=d[i-1].time;
sum=x.avail;
H.put(x);
}
return sum;
}
public static void main(String args[])
{
int[] a=new int[]{0,2,14,4,16,6,5,3};
int m=3;
System.out.println(greedy(a,m));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -