python演算法之快排?

快排是python經典演算法之一。

工具/原料

python

方法/步驟

下面講解的是什麼是快排和快排的圖示。

python演算法之快排

快排是一種解決排序問題的運算方法。

python演算法之快排

快排的原理:在陣列中任意選擇一個數字作為基準,用陣列的資料和基準資料進行比較,比基準數字打的數字的基準數字的右邊,比基準數字小的數字在基準數字的左邊,

第一次排序之後分為比基準資料大或比基準資料小兩個部分,用剛開始的方法繼續排序,直到每個排序分組中只有一個數據或沒有資料為止。

python演算法之快排

下面以[ 7 91 23 1 6 3 79 2 ]陣列為例子,進行快排運算。

python演算法之快排

選基準:選擇數組裡的第一個數字(可以選擇任意數字)為基準數字

python演算法之快排

從j指標開始和基準資料比較之後,其中2比7小,所以將2排到7的左邊。此時進行了交叉移動,所以下一個比較的是i指標對應的資料。

python演算法之快排

i指標與基準資料7比較,其中91比7大,所以將91排到右邊,此時又一次進行了交叉移動,所以下一個比較的是j指標對應的資料。

python演算法之快排

j指標與基準資料7比較,其中79比7大,所以將79排到右邊,此時是同側移動,所以下一個比較的是j指標對應的資料。

python演算法之快排

python演算法之快排

j指標與基準資料7比較,其中3比7小,所以將3排到左邊,此時又一次進行了交叉移動,所以下一個比較的是i指標對應的資料。

python演算法之快排

python演算法之快排

i指標與基準資料7比較,其中23比7大,所以將23排到右邊,此時又一次進行了交叉移動,所以下一個比較的是j指標對應的資料。

python演算法之快排

j指標與基準資料7比較,其中6比7小,所以將6排到左邊,此時又一次進行了交叉移動,所以下一個比較的是i指標對應的資料。

python演算法之快排

i指標與基準資料7比較,其中1比7小,所以將1排到右邊,此時所有的資料都進行了一次排序。

python演算法之快排

第一趟排序之後的結果如下。根據上面的方法,基準資料的左右兩側繼續快排,直到陣列沒有資料或陣列資料為0

python演算法之快排

最後的排序結果如下圖所示:

python演算法之快排

相關問題答案