排序法系列 快速排序法

2022-05-31 23:39:27 字數 593 閱讀 5551

快速排序法是對氣泡排序法的一種改進。他的基本思想是通過一趟排序把資料分割成獨立的兩部分, 其中一部分的所有資料都比另一部分要小,以達到整個資料的排序。

首先選取乙個資料為基準x通常選取第乙個資料。設定兩個變數i,j開始排序的時候i = 0 j = n-1(這裡n為資料的個數)。從j開始搜尋,即從後往前搜尋,找到小於x的值兩者交換。,之後從i開始搜尋,找到大於x的值交換兩者,交叉重複以上兩步,直到i = j;

舉個例子:

a[0]    a[1]    a[2]    a[3]    a[4]    a[5]

49       38       65       97       76       13

進行第一次排序:

交換之後的結果  13   38    65    97    76    49這時j = 4;

第二次排序:

交換之後的結果   13    38    49    97    76    65這時i = 2;

第三次排序:

交換之後的結果    13    38    49    97    76    65 這時j = 2;

i = j快速排序結束。   49     達到預期結果

演算法系列(三) 快速排序

快速排序 終於到我們人見人愛,花見花開,鳥見鳥呆,車見車爆胎 快排的好處不用多說,平均時間的nlogn o 1 的輔助空間,一般比其他的排序演算法要快得多。當然也有些不足,首先,不穩定,所以多關鍵字排序的最後一排肯定不能用了,另外,最壞情況下則為n 2 快速排序和歸併排序一樣,都屬於分治的排序方法。...

JAVA演算法系列 快速排序

首先說一下什麼是快排,比冒泡效率要高,快排的基本思路是首先找到乙個基準元素,比如陣列中最左邊的那個位置,作為基準元素key,之後在最左邊和最右邊設立兩個哨兵,i和j 之後,開始按住左哨兵 i 讓右哨兵 j 往左走 j 找到比key小的元素後,按住右哨兵 j 開始讓左哨兵往右走 i 直到找到比key大...

演算法系列 排序演算法(四)快速排序

快速排序是通過兩個指標相互交換完成一次快速排序,類似於遞迴的二分排序,從交換上來講比較像冒泡 為什麼這麼說呢?不管是插入還是直接,都需要在移動之前遍歷元素 冒泡直接比較交換。公升序 資料 4251 376下標 0123 4561 指標1 4 指標2 6 指標1是用來二分的標準,指標2是被二分的元素,...