📄 sjf1.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;
}
}
public class sjf1
{
public static void main(String args[])
{
int f=0;
double s1 = 0.00;
double s2 = 0.00;
int a_1[]=new int[5];
int a_2[] = new int[5];
float a_3[]=new float[5];
runtime a0 = new runtime("进程A", 0,4);//到达时间及服务时间
runtime a1 = new runtime("进程B", 1,3);
runtime a2 = new runtime("进程C", 2,5);
runtime a3 = new runtime("进程D", 3,2);
runtime a4 = new runtime("进程E", 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]= (float)(a_2[i]/a[i].run_time());//带权周转时间
s1+= a_2[i];
s2=s2+a_3[i];
System.out.print(a[i].getname()+"\n"+"到达时间:"+a[i].starttime()+"\n"+"运行时间: "+a[i].run_time()+"\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 i = 0; i < a.length - 2; i++)
{
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 + -