python實現快排演算法 python快排演算法詳解

2021-10-18 15:21:13 字數 1601 閱讀 9580

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

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

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

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

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

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

5、選基準:選擇陣列裡的第乙個數字(可以選擇任意數字)為基準數字

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

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

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

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

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

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

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

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

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

python實現快排演算法 Python實現快排

挖坑法思路 取乙個元素p 第乙個元素 使元素p歸位 列表被p分成兩部分,左邊的數一定不大於p,右邊的數一定不小於p 遞迴完成排序。python 示例 lst 5,7,4,3,1,2,9,8 def quick sort d,l,r if l r m partition d,l,r quick sor...

python實現快排

學習python,隨便寫了下快排,如下 coding utf 8 快速排序演算法實現 import sys sys.setrecursionlimit 1000000 設定最大遞迴深度,這裡設定為一百萬 def kuaipai ii,jj,data list global s s 1 記錄遞迴的深度...

快排 Python實現

同氣泡排序 上篇博文 一樣,快速排序也屬於交換排序,通過元素之間的比較與交換位置來達到排序的目的。不同的是,氣泡排序在每一輪中只是把1個元素冒泡到陣列的一端,而快速排序是 每一輪挑選乙個基準元素,讓比基準元素大的元素移動到陣列的一邊,比基準元素小的移動到陣列的另外一端,從而把陣列拆解成兩部分。舉例說...