📄 sjf.java
字号:
//import java.io.*;
class runtime
{
String name;
int sta_time;
int get_time;
runtime(String n,int s,int r)
{
name=n;
sta_time=s;
get_time=r;
}
public int starttime()
{
return sta_time;
}
public int run_time()
{
return get_time;
}
public String getname()
{
return name;
}
}
class sif
{
public static void main(String args[])
{
int f=0;
int s1=0;
int s2=0;
int a_1[]=new int[5];
int a_2[]=new int[5];
int a_3[]=new int[5];
runtime a0 = new runtime("进程1", 0,4);//到达时间及服务时间
runtime a1 = new runtime("进程2", 1,3);
runtime a2 = new runtime("进程3", 2,5);
runtime a3 = new runtime("进程4", 3,2);
runtime a4 = new runtime("进程5", 4,4);
runtime a[] = {a0,a1,a2,a3,a4};
sort(a);
for(int i=0;i<a.length;i++)
{
if(i==0)
a_1[i]= a[i].starttime()+a[i].run_time();//完成时间
else
a_1[i]=f+a[i].run_time();
f=a_1[i];//完成时间
a_2[i]=a_1[i]-a[i].starttime();//周转时间
a_3[i]= a_2[i]/a[i].run_time();
a_3[i]=a_3[i];
s1+= a_2[i];
s2+= a_3[i];
System.out.print(a[i].getname()+"\n"+"完成时间:"+a_1[i]+"\n");
System.out.print("周转时间:"+a_2[i]+"\n");
System.out.print("带权周转时间:"+a_3[i]+"\n");
System.out.println();
}
s1=s1/5;
s2=s2/5;
System.out.print("平均周转时间:"+s1+"\n");
System.out.print("带权平均周转时间:"+s2+"\n");
}
public static void sort(runtime[] a) //服务时间越短,优先级越高
{ runtime temp;
for (int i = 0; i < a.length; i++)
{ if(a[0].starttime()>a[i].starttime())
{ temp = a[i];
a[i] = a[0];
a[0] = temp;
}
}
for (int j = 1; j < a.length-1; j++)
if (a[j].run_time()>a[j+1].run_time())
{ temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -