積少成多

          垃圾堆

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            29 Posts :: 1 Stories :: 5 Comments :: 0 Trackbacks
          一般分如下步驟:
          1)選擇一個樞紐元素(有很對選法,我的實現(xiàn)里采用去中間元素的簡單方法)
          2)使用該樞紐元素分割數(shù)組,使得比該元素小的元素在它的左邊,比它大的在右邊。并把樞紐元素放在合適的位置。
          3)根據(jù)樞紐元素最后確定的位置,把數(shù)組分成三部分,左邊的,右邊的,樞紐元素自己,對左邊的,右邊的分別遞歸調(diào)用快速排序算法即可。public static void quicksort(int stru[], int left, int right){

              if(left<right){
                  
          int i=left,j=right;
                  
          int X=stru[i];
                  
          int n=i;
                  
          while(i<j){
                      
          while(X<stru[j]&&j>i){
                          j
          --;
                      }
                      stru[n]
          =stru[j];
                      n
          =j;
                      
          while(X>stru[i]&&i<j){
                          i
          ++;
                      }
                      stru[n]
          =stru[i];
                      n
          =i;
                  }
                  stru[i]
          =X;
                  quicksort(stru,left,j
          -1);
                  quicksort(stru,j
          +1,right);
              }
          }
          posted on 2011-05-26 17:34 思無 閱讀(136) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 永年县| 海盐县| 綦江县| 汉川市| 邮箱| 龙岩市| 富宁县| 朝阳区| 淮南市| 寿光市| 扶风县| 观塘区| 准格尔旗| 修文县| 崇左市| 河北区| 昌平区| 湘西| 石河子市| 哈尔滨市| 资源县| 宁都县| 迁西县| 延安市| 增城市| 许昌市| 金阳县| 五河县| 襄垣县| 通城县| 法库县| 民和| 祁东县| 蒲城县| 徐州市| 金寨县| 清涧县| 抚宁县| 城市| 仙居县| 文登市|