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)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临桂县| 孟津县| 中方县| 沂水县| 二手房| 界首市| 大埔区| 乌什县| 长春市| 永修县| 仪征市| 马公市| 浑源县| 桐梓县| 六枝特区| 红安县| 来凤县| 巴林右旗| 巴青县| 灵璧县| 营山县| 凌源市| 桂东县| 科技| 无棣县| 绥阳县| 敖汉旗| 会同县| 水城县| 金平| 福建省| 丰都县| 陇川县| 米泉市| 富平县| 黔江区| 汝南县| 张家港市| 满洲里市| 和平区| 紫阳县|