我们有一个有关排序ID,到达时间,CPU突发时间和优先级的作业,我在排序部分只有一个问题,我真的可以使用一些帮助。另外,ID,AT,CBT和Prio的值取决于用户输入。我还使用二维数组存储ID,AT,CBT和P。
例如
ID: 98
AT: 50
CBT: 60
P(1 is the highest & 5 is the lowest): 1
ID: 99
AT: 55
CBT: 51
P: 1
如果我想基于AT进行排列,则首先打印AT较低的那个以及其ID等。该顺序是从最小到最大AT。
如果我想像AT一样基于CBT进行排列,它将按照从最小到最大的顺序打印,但是如果存在多个彼此相等的CBT,则他们的AT将确定谁是首先打印。
,如果我根据优先级进行排列,则将首先打印值为1的prio,直到5,但是如果存在多个具有相同值的prio,则其CBT将确定谁先打印,但是如果他们的CBT也是一样,要由AT来确定。
我想学习如何使用Java。
if(userchoice == '1'){
//infos[a][1] is where the AT value stored
if(infos[0][1] < [1][1] && infos[0][1] < infos[2][1] &&....infos[4][1]){
for(int b = 0;b<4;b++){
System.out.print(infos[0][]+"\t");
}
}
System.out.println();
if(infos[1][1] > infos[0][1] && infos[1][1] < infos[2][1] &&....infos[4][1]){
for(int b = 0;b<4;b++){
System.out.print(infos[1][b]+"\t");
}
}
}
这些是基于我给定示例的实际输出
Arranged using AT:
ID: 98
AT: 50
CBT: 60
P: 1
ID: 99
AT: 55
CBT: 51
P: 1
Arranged using CBT:
ID: 99
AT: 55
CBT: 51
P: 1
ID: 98
AT: 50
CBT: 60
P: 1
Arranged using P:
ID: 99
AT: 55
CBT: 51
P: 1
ID: 98
AT: 50
CBT: 60
P: 1
答案 0 :(得分:1)
如果使用Java,首先应避免使用多维数组并创建对象。 您可以使用Collections框架来简化这些操作。
更多内容,请阅读此http://www.javapractices.com/topic/TopicAction.do?Id=10或同一主题的文章,以了解自定义排序顺序等。