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 閱讀(1734) 評論(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”

          嘻嘻~~~笑醒~~~



          導航

          <2013年12月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 酒泉市| 汝阳县| 柘城县| 诸城市| 巩留县| 施秉县| 轮台县| 亚东县| 贵定县| 安化县| 沙坪坝区| 探索| 西和县| 义马市| 获嘉县| 达拉特旗| 麻阳| 济阳县| 彩票| 广元市| 三都| 苍南县| 宣化县| 东源县| 海原县| 尚志市| 莲花县| 防城港市| 邢台市| 沈阳市| 望江县| 阳信县| 新和县| 陇川县| 普格县| 桑植县| 高安市| 聊城市| 张家港市| 栾城县| 普定县|