python快排算法詳解
快排是python經典算法之一。
1、下面講解的是什么是快排和快排的圖示。

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

3、快排的原理:在數(shù)組中任意選擇一個數(shù)字作為基準,用數(shù)組的數(shù)據(jù)和基準數(shù)據(jù)進行比較,比基準數(shù)字打的數(shù)字的基準數(shù)字的右邊,比基準數(shù)字小的數(shù)字在基準數(shù)字的左邊,
第一次排序之后分為比基準數(shù)據(jù)大或比基準數(shù)據(jù)小兩個部分,用剛開始的方法繼續(xù)排序,直到每個排序分組中只有一個數(shù)據(jù)或沒有數(shù)據(jù)為止。

4、下面以[ 7 91 23 1 6 3 79 2 ]數(shù)組為例子,進行快排運算。

5、選基準:選擇數(shù)組里的第一個數(shù)字(可以選擇任意數(shù)字)為基準數(shù)字

6、從j指針開始和基準數(shù)據(jù)比較之后,其中2比7小,所以將2排到7的左邊。此時進行了交叉移動,所以下一個比較的是i指針對應的數(shù)據(jù)。

7、i指針與基準數(shù)據(jù)7比較,其中91比7大,所以將91排到右邊,此時又一次進行了交叉移動,所以下一個比較的是j指針對應的數(shù)據(jù)。

8、j指針與基準數(shù)據(jù)7比較,其中79比7大,所以將79排到右邊,此時是同側移動,所以下一個比較的是j指針對應的數(shù)據(jù)。


9、j指針與基準數(shù)據(jù)7比較,其中3比7小,所以將3排到左邊,此時又一次進行了交叉移動,所以下一個比較的是i指針對應的數(shù)據(jù)。


10、i指針與基準數(shù)據(jù)7比較,其中23比7大,所以將23排到右邊,此時又一次進行了交叉移動,所以下一個比較的是j指針對應的數(shù)據(jù)。

11、j指針與基準數(shù)據(jù)7比較,其中6比7小,所以將6排到左邊,此時又一次進行了交叉移動,所以下一個比較的是i指針對應的數(shù)據(jù)。

12、i指針與基準數(shù)據(jù)7比較,其中1比7小,所以將1排到右邊,此時所有的數(shù)據(jù)都進行了一次排序。

13、第一趟排序之后的結果如下。根據(jù)上面的方法,基準數(shù)據(jù)的左右兩側繼續(xù)快排,直到數(shù)組沒有數(shù)據(jù)或數(shù)組數(shù)據(jù)為0

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

相關文章
關于tensorflow中tf.keras.models.Sequential()的用法
這篇文章主要介紹了關于tensorflow中tf.keras.models.Sequential()的用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
瀏覽器常用基本操作之python3+selenium4自動化測試(基礎篇3)
瀏覽器常用基本操作有很多種,今天給大家介紹python3+selenium4自動化測試的操作方法,是最最基礎的一篇,對python3 selenium4自動化測試相關知識感興趣的朋友一起看看吧2021-05-05
Python時間差中seconds和total_seconds的區(qū)別詳解
今天小編就為大家分享一篇Python時間差中seconds和total_seconds的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Opencv+Python實現(xiàn)圖像運動模糊和高斯模糊的示例
今天小編就為大家分享一篇關于Opencv+Python實現(xiàn)圖像運動模糊和高斯模糊的示例,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-04-04

