短作业优先算法-SJF

//任何转载源代码的请保留出处作者等相关信息

//作者:chlaws

//运行环境:visual studio 2008

//描述:短作业优先算法-SJF

//说明:才用c风格写的,这里不给出原创的思路,在阅读过程中有不懂得可以询问

#include #include #include #include using namespace std; #define MAX 10 int MAXNUM=10000; char process[MAX]=""; //进程标识 int arrivetime[MAX];//达到时间 int servicetime[MAX];//服务时间 int finishtime[MAX]; //完成时间 int turnovertime[MAX];//周转时间 double avgturnovertime; //平均周转时间 double powertime[MAX]; //带权周转时间 double avgpowertime; //平均带权周转时间 int init(); void SJF(); void output(); void showsingle(int* arr,int len); //初始化,并返回进程数 int init() { cout << "输入进程队列标识(用单个字母表示一个进程,字母间用tab间隔)" << endl; int i=0; while(i> arrivetime[ix]; } cout << "依次输入服务时间(时间之间用tab间隔)" <> servicetime[ix]; } return len; } void SJF(int len) { //=======开始进入关键计算区===================================== //完成时间的计算 int totalsrvtime=servicetime[0]; finishtime[0]=totalsrvtime; int servicetimebak[MAX];//servicetimebak用来作为servicetime的副本,避免对servicetime造成修改 copy(servicetime,servicetime+MAX,servicetimebak); int* phead=servicetimebak; int* pos=NULL;//用来指向服务时间序列中的最小值 int curpos;//用来在下面的for循环中标识每次在服务时间序列中所找到的最小值的下标 for(int ix=1; ix

你可能感兴趣的:(数据结构和算法,原创项目源码)