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年10月>
          2829301234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汝州市| 抚顺县| 宁德市| 饶阳县| 类乌齐县| 景洪市| 兰坪| 新野县| 奉节县| 衡阳县| 疏附县| 北流市| 富顺县| 县级市| 乐昌市| 保靖县| 卫辉市| 嘉义市| 澄城县| 含山县| 页游| 枣阳市| 思茅市| 曲阜市| 永平县| 怀仁县| 阳信县| 合作市| 遵化市| 武穴市| 石嘴山市| 安新县| 宜城市| 丹江口市| 延安市| 绵阳市| 扶绥县| 招远市| 原阳县| 金门县| 沂水县|