?? sortfb.java
字號(hào):
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;i<N;i++) queue[i]=new Queue(); PNode temp=null; int a[]=new int[24]; for(int i=0;i<24;i++) a[i]=-1; 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]; } int time=-1; int currentPnum=0; /* 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); }*/ while(time<24){ int currentQueue=-1; for(int i=0;i<N;i++){ if(!queue[i].isEmpty()){ currentQueue=i;break; } } 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;//System.out.print("time: "+time+"temp.number: "+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+" 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; }}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -