睡眠排序法,了解一下


今天看到一個奇葩排序算法,睡眠排序法。

 1 public class ArraySort implements Runnable{
 2     private String num;
 3     public ArraySort(int num){
 4         this.num = num +"";
 5     }
 6 
 7     public static void main(String[] args){
 8         //把這個數組升序輸出
 9         int[] nums = {11,3,998,5455,1,152,990};
10         for(int i = 0;i < nums.length;i++){
11             new Thread(new ArraySort(nums[i])).start();
12         }
13     }
14 
15     public void run(){
16         try{
17             Thread.sleep(Integer.parseInt(num));
18             System.out.println(num);
19         }catch(Exception e){
20             e.printStackTrace();
21         }
22     }
23 }

是不是感覺很神奇呢,但是這個算法還是有行不通的地方,如負數;數值相近的時候,可能會有誤差;輸入數據很多時,這些線程不能看作是同時啟動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM