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)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 常宁市| 临武县| 宁强县| 馆陶县| 个旧市| 永城市| 新泰市| 外汇| 屯留县| 曲周县| 江口县| 同仁县| 墨脱县| 西华县| 合肥市| 和静县| 措美县| 白城市| 康定县| 池州市| 忻城县| 阿拉善盟| 遂昌县| 湘潭县| 元江| 高安市| 红河县| 平利县| 玉门市| 车险| 兴化市| 崇明县| 灌南县| 乌拉特前旗| 高清| 达孜县| 卢氏县| 兰西县| 巴林左旗| 普洱| 日喀则市|