测试用input.txt 四个数字依次为进程编号 进程到达时间 进程需要时间 进程优先级
1 0 79 1
2 184 49 0
3 135 52 2
4 128 65 1
5 197 98 0
6 112 10 2
7 298 6 1
8 112 72 0
9 38 47 2
10 236 100 1
代码部分
#include <iostream>
#include <fstream>#include <string>
using namespace std;
struct Process {
int num;
int ReadyTime;
int time;
int Priority;
};
void PaiXuReadyTime(Process *a,int n)
{
int i = 0, j = 0, k = 0;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)
{
if (a[k].ReadyTime > a[j].ReadyTime)
{
k = j;
}
}
if (k != i)
{
Process tmp = a[k];
a[k] = a[i];
a[i] = tmp;
}
}
}
void PaiXuTime(Process *a, int n)
{
int i = 0, j = 0, k = 0;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)
{
if (a[k].time > a[j].time)
{
k = j;
}
}
if (k != i)
{
Process tmp = a[k];
a[k] = a[i];
a[i] = tmp;
}
}
}
void ShortestJobFirst(Process * p,int n)
{
Process *a = new Process[n];
for (int q = 0; q < n; q++)
{
a[q] = p[q];
}
PaiXuReadyTime(a, n);
int *TimeSequence = new int[n + 1];
TimeSequence[0] = a[0].ReadyTime;
for(int m = 0; m < n; m++)
{
TimeSequence[m + 1] = TimeSequence[m] + a[m].time;
Process *TempSequenc