www.pudn.com > processsimulateJbuild.rar > sortRR2.java
package dispatcher;
import sun.misc.Queue;
class sortRR2 {
public static int[] sort(int n[][]) throws InterruptedException{
Queue queue=new Queue();
PNode temp=null;
int a[]=new int[24];
for(int i=0;i<24;i++)
a[i]=-1;
int time=0;
PNode p[]=new PNode[5];
for(int i=0;i<5;i++){
p[i]=new PNode();
}
for(int i=0;i<5;i++){
p[i].number =i;
p[i].arriveTime = n[0][i];
p[i].serveTime =n[1][i];
}
while(time<24){
for(int i=0;i<5;i++)
if(p[i].arriveTime ==time && !p[i].isInQueue && p[i].serveTime>0 )
{queue.enqueue(p[i]) ;p[i].isInQueue=true;}
if(temp!=null && temp.serveTime>0)
{queue.enqueue(temp) ;}
if( ! queue.isEmpty() ){
temp=(PNode)queue.dequeue() ;
for(int i=0;i<4;i++){
a[time++]=temp.number;
for(int j=0;j<5;j++)
if(p[j].arriveTime ==time && !p[j].isInQueue && p[j].serveTime>0)
{queue.enqueue(p[j]) ;p[j].isInQueue=true;}
temp.serveTime--;
if(temp.serveTime<=0){
break;
}
}
}
else time++;
}
return a;
}
}