贪心算法多机调度问题伪代码
发布网友
发布时间:2022-04-24 13:26
我来回答
共2个回答
热心网友
时间:2023-10-14 09:33
void machineWork::Sort( int timeId[] )
{
for( int i = 0 ; i < works ; i++ )
timeId[i] = i;
for( i = 0 ; i < works - 1 ; i++ )
{
double min = timesUnsorted[ timeId[i] ];
int p = i;
for( int j = i + 1 ; j < works ; j++ )
{
if( this->timesUnsorted[ timeId[j] ] > min )
{
min = this->timesUnsorted[ timeId[j] ];
p = j;
}
}
int t = timeId[i];
timeId[i] = timeId[p];
timeId[p] = t;
}
}
热心网友
时间:2023-10-14 09:34
设有 n 个独立的作业 { 1 , 2 , .. , n },由 m 台相同的机器进行加工处理。作业 i 所需的处理时间为 ti。现约定,任何作业可以在任何一台机器上加工处理,但未完工前不允许中断处理。任何作业不能拆分成更小的作业。多机调度问题要求给出一种作业调度方案,使所给的 n 个作业在尽可能短的时间内由 m 台机器加工处理完成。
class machineWork
{
public:
machineWork(void);
~machineWork(void);
void SetMachine( int machine );
void SetWorks( double times[] , int works );
bool Arrange();
void Sort(int timeId[]);
void Print();
private:
//double times[maxWork];
double timesUnsorted[maxWork];
int graph[maxMachine][maxWork];
double machinesTime[maxMachine];
int machines;
int works;
};