Johnny

          表面的激烈是由于內心的單薄,真正的力量如同流水一般沉靜
          隨筆 - 1, 文章 - 5, 評論 - 0, 引用 - 0
          數據加載中……

          快速排序Java代碼

          /**
           * 
          @author sikaijian
           
          */
          public class QuickSort {
              
              /**
               * 快速排序算法實現
               * 
          @param data 待排序數組
               * 
          @param left 左邊界 初始0
               * 
          @param right 右邊界 初始數組長度-1
               * 
          @author sikaijian
               
          */
              public static void sort(int[] data, int left, int right) {
                  if (left > right)
                      return;
                  int pHead = left;  // 頭部指針
                  int pTail = right;  // 尾部指針
                  int key = data[left];  // 哨兵

                  while (pHead < pTail) {
                      // 從右往左遍歷,找到比key小的數,放到前面
                      while (pHead < pTail && data[pTail] > key) pTail--;
                      if (pHead < pTail) data[pHead++] = data[pTail];
                      
                      // 從左往右遍歷,找到比key大的數,放到后面
                      while (pHead < pTail && data[pHead] < key) pHead++;
                      if (pHead < pTail) data[pTail--] = data[pHead];
                  }
                  
                  data[pHead] = key; // 歸位
                  
                  sort(data, left, pHead-1);  // 排序左邊的數組
                  sort(data, pHead+1, right);  // 排序右邊的數組
              }
              
              /**
               * 測試代碼
               * 
          @param args
               
          */
              public static void main(String[] args) {
                  int[] data = new int[] { 49, 23, 65, 13, 38, 96, 12, 33, 88, 123, 22,
                          11, 9, 55 };

                  for (int t : data) {
                      System.out.print(t);
                      System.out.print(" ");
                  }
                  System.out.println();
                  System.out.println("------------------------------");
                  QuickSort.sort(data, 0, data.length - 1);

                  for (int t : data) {
                      System.out.print(t);
                      System.out.print(" ");
                  }
              }
          }

          posted on 2012-09-21 11:01 瓢菝的雨夜 閱讀(216) 評論(0)  編輯  收藏 所屬分類: 數據結構算法


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


          網站導航:
           
          主站蜘蛛池模板: 图木舒克市| 蓬安县| 黄浦区| 龙南县| 盖州市| 白河县| 军事| 乌拉特中旗| 锦屏县| 黎平县| 武威市| 昂仁县| 玉屏| 隆德县| 青神县| 闽侯县| 固阳县| 囊谦县| 丰都县| 广水市| 永吉县| 富川| 德保县| 故城县| 揭西县| 南皮县| 日喀则市| 大安市| 犍为县| 酉阳| 呼和浩特市| 靖边县| 建宁县| 沅陵县| 鹿泉市| 昌图县| 依安县| 阿拉善左旗| 夏津县| 营山县| 确山县|