📄 lpt.cpp
字号:
// machine scheduling using LPT rule#include <iostream.h>#include "hsort.h"#include "minheap.h"#include "lptnodes.h"template <class T>void LPT(T a[], int n, int m){// Construct an m machine LPT schedule. if (n <= m) { cout << "Schedule one job per machine." << endl; return;} HeapSort(a,n); // in ascending order // initialize m machines and the min heap MinHeap<MachineNode> H(m); MachineNode x; for (int i = 1; i <= m; i++) { x.avail = 0; x.ID = i; H.Insert(x); } // construct schedule for (int i = n; i >= 1; i--) { H.DeleteMin(x); // get first free machine cout << "Schedule job " << a[i].ID << " on machine " << x.ID << " from " << x.avail << " to " << (x.avail + a[i].time) << endl; x.avail += a[i].time; // new avail time H.Insert(x); }}void main(void){ JobNode a[11]; int n = 10; for (int i = 1; i <= n; i++) { a[i].time = 2 * i * i; a[i].ID = i; } LPT(a,n,3);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -