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


package dispatcher;
import sun.misc.Queue;

class sortFB {
  public static int[] sort(int n[][]) throws InterruptedException{
    final int N=10;
    Queue queue[]=new Queue[N];
    for(int i=0;i0){
          currentPnum++;
          queue[0].enqueue(p[i]) ;System.out.print("  time:"+time+" en1:"+p[i].number);
        }*/
    while(time<24){
      int currentQueue=-1;
      for(int i=0;i0){
          currentPnum++;
          queue[0].enqueue(p[i]) ;//System.out.print("  time:"+time+" en2:"+p[i].number);
        }
        if(currentPnum==0){
          if(temp!=null && temp.serveTime>0)
          {queue[currentQueue].enqueue(temp) ;currentPnum++;}//System.out.print("  time:"+time+" en3:"+temp.number);}
        }
        //else;
        else
          if(temp!=null && temp.serveTime>0)
          {queue[currentQueue+1].enqueue(temp) ;currentPnum++;}//System.out.print("  time:"+time+" en4:"+temp.number);}
      }
      else if(currentPnum>1){
        if( ! queue[currentQueue].isEmpty() ){
          temp=(PNode)queue[currentQueue].dequeue() ;currentPnum--;//System.out.print("  time:"+time+" de:"+temp.number);
          a[time++]=temp.number;
          temp.serveTime--;
        }
        for(int i=0;i<5;i++)
        if(p[i].arriveTime ==time && p[i].serveTime>0){
          currentPnum++;
          queue[0].enqueue(p[i]) ;//System.out.print("  time:"+time+" en5:"+p[i].number);
        }
        if(temp!=null && temp.serveTime>0){
          if(currentQueue>=N-1) queue[currentQueue].enqueue(temp) ;
          else queue[currentQueue+1].enqueue(temp) ;
          currentPnum++;
        }//System.out.print("  time:"+time+" en6:"+temp.number);}
      }
      else{
        time++;
        for(int i=0;i<5;i++)
        if(p[i].arriveTime ==time && p[i].serveTime>0){
          currentPnum++;
          queue[0].enqueue(p[i]) ;//System.out.print("  time:"+time+" en1:"+p[i].number);
        }
      }

    }
    return a;
  }
}