void SJF(){ sort(p,p+n,cmp1); //按进程的服务时间升序排序

int startTime;   //进程开始时间 
int EATime = 1e9;       //1e9为1*10的9次方 

int curTime = 0; //系统当前时间 
int id = -1; 
for(i=0;i<n;i++){
	for(j=0;j<n;j++){
		if(!p[j].flag && p[j].ArrivalTime <= curTime){  //(2)请解释左侧条件的含义 
			startTime = curTime;
			p[j].flag = true;
			p[j].FinishTime = startTime + p[j].ServiceTime;       //(3)赋值号右侧的代码为? 
			curTime = p[j].FinishTime;
			break;	
		}
		if(!p[j].flag && p[j].ArrivalTime < EATime){   
			EATime = p[j].ArrivalTime;
			id = j;
		}
	}
	// (4)请解释上面的代码执行后,EATime值得含义。 
	if(j == n){   
		startTime = EATime;
		p[id].flag = true;
		p[id].FinishTime = startTime + p[id].ServiceTime;
		curTime = p[id].FinishTime;
		EATime = 1e9;
	}
}
#include iostream#include String#includealgorithm#include iomanip#includemathh #includebitsstdc++husing namespace std;using namespace std;struct process	int pid; 进程id 	int ArrivalTime; 到达时间

原文地址: https://www.cveoy.top/t/topic/fcBT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录