package 调度算法;
public class Diaodu {
public static void main(String[] args) {
// TODO Auto-generated method stub
String name[]= {" 进程名", " 到达时间", " 运行时间", " 优先级"};
for(int i=0;i<name.length;i++){
System.out.print(name[i]);
}
System.out.println();
double a[][]= {{1,8.00,2.00,2},{2,8.50,0.50,4},{3,9.00,0.10,3},{4,9.50,0.20,1}};
for(int j=0;j<a.length;j++){
for(int i=0;i<a[j].length;i++){
System.out.print( " "+ a[j][i]);
}
System.out.println();
}
System.out.println();
System.out.println("短作业优先算法,调度如下:");
for (int n=0; n<a.length;n++){//按运行时间由短到长排序
for(int m=n+1;m<a.length;m++){
if(a[m][2]<a[n][2]){
double t = a[m][2];
double f = a[m][0];
double b = a[m][1];
double o = a[m][3];
a[m][2]=a[n][2];
a[m][0]=a[n][0];
a[m][1]=a[n][1];
a[m][3]=a[n][3];
a[n][2]= t;
a[n][0]= f;
a[n][1]= b;
a[n][3]= o;
}//必须把4个数据都交换
}
}
for(int i=0;i<name.length;i++){
System.out.print(name[i]);
}
System.out.println();
for(int j=0;j<a.length;j++){
for(int i=0;i<a[j].length;i++){
System.out.print( " "+ a[j][i]);
}
System.out.println();
}
System.out.println();
System.out.println("优先级算法,调度如下:");
for (int n=0; n<a.length;n++){
for(int m=n+1;m<a.length;m++){
if(a[m][3]<a[n][3]){
double t = a[m][2];
double f = a[m][0];
double b = a[m][1];
double o = a[m][3];
a[m][2]=a[n][2];
a[m][0]=a[n][0];
a[m][1]=a[n][1];
a[m][3]=a[n][3];
a[n][2]= t;
a[n][0]= f;
a[n][1]= b;
a[n][3]= o;
}
}
}
for(int i=0;i<name.length;i++){
System.out.print(name[i]);
}
System.out.println();
for(int j=0;j<a.length;j++){
for(int i=0;i<a[j].length;i++){
System.out.print( " "+ a[j][i]);
}
System.out.println();
}
System.out.println();
}
}
这是简单模拟操作系统中的短作业优先和优先级算法,有问题和建议欢迎留言^_^
Java二维数组排序
最新推荐文章于 2024-01-04 22:44:49 发布