www.pudn.com > processsimulateJbuild.rar > sortRR.java


package dispatcher; 
import sun.misc.Queue; 
 
 
class sortRR { 
 
  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].serveTime>0) queue.enqueue(p[i]) ; 
      if(temp!=null && temp.serveTime>0) 
        queue.enqueue(temp) ; 
      if( ! queue.isEmpty() ){ 
        temp=(PNode)queue.dequeue() ; 
        a[time]=temp.number; 
        temp.serveTime--; 
      } 
      time++; 
    } 
    return a; 
  } 
} 
//class PNode { 
//  public int number; 
//  public int arriveTime; 
//  public int serveTime; 
//  public boolean isFinish; 
//  public boolean isInQueue; 
//}