Loading...

          java .net

          隨機快速排序算法

          隨機快速排序算法:
          還沒怎么整明白,有點暈
          Java語言:
          import java.util.*;
          public class Test {


              int[] x = {3,7,5,6,4,9,8,1};
              int comps = 0;
              void quicksort(int l, int u)
              {
                  int i, m;
                  if (l >= u) return;
                  swap(l, getRandom(l, u));
                  m = l;
                 
                  comps += u - 1;
                  for (i = l+1; i <= u; i++){
                      //comps++;
                      if (x[i] < x[l])
                          swap(++m, i);
                  }
                  swap(l, m);
                  quicksort(l, m-1);
                  quicksort(m+1, u);
              }
             
              void swap(int a,int b){
                  int temp = x[a];
                  x[a] = x[b];
                  x[b] = temp;
              }
             
              int getRandom(int min,int max){ 
                    return (int)(Math.random()*(max-min+1)) + min;
                    //Math.round(Math.random()*(Max-Min)+Min);
              }
             
              public static void main(String[] args) {
                  Test t = new Test();
                  System.out.println(Arrays.toString(t.x));
                  t.quicksort(0,t.x.length - 1);
                  System.out.println(t.comps);
                  System.out.println(Arrays.toString(t.x));
              }
             

          }


          posted on 2008-10-23 17:24 閱讀(1736) 評論(4)  編輯  收藏 所屬分類: 學習java算法

          評論

          # re: 隨機快速排序算法 2008-12-15 14:21 秦青

          3168  回復  更多評論   

          # re: 隨機快速排序算法 2008-12-15 15:51

          3168啥意思  回復  更多評論   

          # re: 隨機快速排序算法 2009-01-21 10:37 kj

          其實也不是很快嘛~ 還比不上 O(n) 的排序算法  回復  更多評論   

          # re: 隨機快速排序算法 2013-12-10 08:52 張權

          這里有個隨機排序算法,效率很高,不過是用C#寫的,但是這不影響算法思想
          http://www.aspnetblog.cn/p/1.html  回復  更多評論   

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汝阳县| 汕头市| 都江堰市| 平塘县| 涟水县| 威远县| 乌鲁木齐市| 沙洋县| 南丹县| 始兴县| 临清市| 伊金霍洛旗| 襄汾县| 波密县| 曲麻莱县| 广南县| 昌邑市| 沽源县| 叙永县| 大庆市| 沐川县| 虹口区| 白河县| 伊金霍洛旗| 和田市| 垣曲县| 禹州市| 尼玛县| 皮山县| 阿克苏市| 亳州市| 宁阳县| 韶山市| 孝昌县| 金阳县| 宁都县| 锦州市| 南宫市| 定结县| 德保县| 铜山县|