import java.text.DecimalFormat;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class experiment1 {
public static void main(String[] args) {
Scanner in= new Scanner(System.in);
System.out.println("请输入进程个数:");
int n=in.nextInt();
Process[] p=new Process[n];
System.out.println("请输入每个进程的到达时间和服务时间和进程ID:");
//初始化进程数据
for(int i=0;
i();
//结果list
List res=new LinkedList<>();
//按时间对进程进行排序
InsertSort(p);
//处理第一个进程
p[0].finishTime=p[0].arrivalTime+p[0].serviceTime;
p[0].WholeTime=p[0].finishTime-p[0].arrivalTime;
p[0].weightWholeTime=p[0].WholeTime/p[0].serviceTime;
res.add(p[0]);
now=p[0].finishTime;
//将剩余进程添加进待处理list
for(int i=1;
i【Java简单实现进程调度算法 FCFS和SJF】now){
next.finishTime=next.arrivalTime+next.serviceTime;
next.startTime=next.arrivalTime;
}else{
next.finishTime=now+next.serviceTime;
next.startTime=now;
}
now=next.finishTime;
next.WholeTime=next.finishTime-next.arrivalTime;
next.weightWholeTime=(double)next.WholeTime/(double)next.serviceTime;
res.add(next);
} return res.toArray(new Process[0]);
}
}//进程的数据结构
class Process{
public int arrivalTime;
public int serviceTime;
public int finishTime;
public int startTime;
public int WholeTime;
public double weightWholeTime;
public String pid;
Process(int x,int y,String id){
arrivalTime=x;
serviceTime=y;
pid=id;
}
}
![Java简单实现进程调度算法 FCFS和SJF](https://img.it610.com/image/info8/57f20cf171d74a358ba3e7353fe8524a.png)
文章图片