多机调度问题
class JobNode {
friend void Greedy(JobNode*, int, int);
friend void main(void);
public:
operator int() const { return time; }
private:
int ID, time;
};
class MachineNode {
friend void Greedy(JobNode*, int, int);
public:
operator int() const { return avail; }
private:
int ID, avail;
};
template <class Type>
void Greedy(Type a[], int n, int m) {
if (n <= m) {
std::cout << "为每一个作业分配一个机器" << std::endl;
return;
}
std::sort(a, a + n);
MinHeap<MachineNode> H(m);
MachineNode x;
for (int i = 0; i < m; i++) {
x.avail = 0;
x.ID = i + 1;
H.Insert(x);
}
for (int i = 0; i < n; i++) {
H.DeleteMin(x);
cout << "将机器" << x.ID << "从" << x.avail << "到" << x.avail + a[i].time << "的时间段分配给作业" << a[i].ID << endl;
x.avail += a[i].time;
H.Insert(x);
}
}
最后更新:
2024年1月2日 21:37:12
创建日期: 2024年1月2日 19:47:42
创建日期: 2024年1月2日 19:47:42