快排是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、最后的排序結果如下圖所示:
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
