国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java實現快速排序算法

2019-11-26 15:13:29
字體:
來源:轉載
供稿:網友

1、算法概念。

快速排序(Quicksort)是對冒泡排序的一種改進。由C. A. R. Hoare在1962年提出。
2、算法思想。

通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

3、實現思路。

①以第一個關鍵字 K 1 為控制字,將 [K 1 ,K 2 ,…,K n ] 分成兩個子區,使左區所有關鍵字小于等于 K 1 ,右區所有關鍵字大于等于 K 1 ,最后控制字居兩個子區中間的適當位置。在子區內數據尚處于無序狀態。
②把左區作為一個整體,用①的步驟進行處理,右區進行相同的處理。(即遞歸)
③重復第①、②步,直到左區處理完畢。

public static void quickSortByMid(int[] a, int low, int high) {    if (low >= high)      return;    // 分割    int pivot = a[low];// 基準值    int i = low, j = high;    while (i < j) {      while (i < j && a[j] >= pivot)        --j;      a[i]=a[j];      while (i < j && a[i] <= pivot)        ++i;      a[j]=a[i];    }    a[i]=pivot;    quickSortByMid(a, low, i-1);    quickSortByMid(a, i+1, high);  }

快速排序算法示意圖:

以上所述就是本文的全部內容了,希望對大家學習java快速排序算法有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阜阳市| 思南县| 会东县| 丰都县| 承德县| 九江市| 靖江市| 红河县| 井研县| 永和县| 光泽县| 寿宁县| 如东县| 松溪县| 清徐县| 大庆市| 乌拉特中旗| 长岛县| 延寿县| 珲春市| 文登市| 迁安市| 金阳县| 中阳县| 遂溪县| 花莲市| 垦利县| 凯里市| 湟中县| 伽师县| 吉安县| 赤壁市| 岳池县| 淳安县| 高雄县| 开平市| 蛟河市| 肃北| 广宁县| 蒲城县| 宝清县|