机器调度问题

确定如何调度才能使m台机器上运行指定的n个作业的时间最短。

采用一个称为最长处理时间优先(Longest Processing Time first ,LPT)的调度策略,在LPT算法中,作业按他们所需处理时间的递减顺序排列。

由于在分配一个作业的时候,总要将其分配给最先变为空闲的机器,因此机器也按空闲的到来时刻生成一个递增序列。

 

//文件minheap.h

#include <iostream>
using namespace std;

struct MachineNode
{
	int ID; //机器号
	int Valid; //机器空闲时时间
};

struct JobNoe
{
	int ID; //作业编号
	int time; //作业持续时间
};

bool operator < (const JobNoe &a,const JobNoe &b)
{
	return (a.time<b.time);
}

bool operator < (const MachineNode &a,const MachineNode &b)
{
	return (a.Valid<b.Valid);
}

bool operator > (const JobNoe &a,const JobNoe &b)
{
	return (a.time>b.time);
}

bool operator > (const MachineNode &a,const MachineNode &b)
{
	return (a.Valid>b.Valid);
}

template <class T>
class MinHeap
{
private:
	T *heap;
	int CurSize;
	int MaxSize;
public:

	MinHeap(int maxsize=10)
	{
		MaxSize=maxsize;
		CurS
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值