日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现快排算法_Python实现快速排序算法

發布時間:2023/12/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现快排算法_Python实现快速排序算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python實現快速排序算法

快速排序算法是一種基于交換的高效的排序算法,由C.R.A.Hoare于1962年提出,是一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法(Divide and conquer algorithm)。

分治法的基本思想

將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。

快速排序的基本思想

先找到一個基準點(一般指數組的中部),然后數組被該基準點分為兩部分,依次與該基準點數據比較,如果比它小,放左邊;反之,放右邊。

左右分別用一個空數組去存儲比較后的數據。

最后遞歸執行上述操作,直到數組長度 <= 1;

動畫圖

代碼實現

def?quick_sort(lists,?left,?right):

'''快速排序'''

#?跳出遞歸判斷

if?left?>=?right:

return?lists

#?選擇參考點,該調整范圍的第1個值

key?=?lists[left]

low?=?left

high?=?right

#?循環判斷直到遍歷全部

while?left?

#?從右邊開始查找大于參考點的值

while?left?=?key:

right?-=?1

lists[left]?=?lists[right]?#?這個位置的值先挪到左邊

#?從左邊開始查找小于參考點的值

while?left?

left?+=?1

lists[right]?=?lists[left]?#?這個位置的值挪到右邊

#?寫回改成的值

lists[left]?=?key

#?遞歸,并返回結果

quick_sort(lists,?low,?left?-?1)?#?遞歸左邊部分

quick_sort(lists,?left?+?1,?high)?#?遞歸右邊部分

return?lists

numbers?=?[4,?0,?7,?9,?2,?8,?1,?3,?6,?5]

quick_sort(numbers,0,len(numbers)-1)

assert?numbers?==?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]

總結

以上是生活随笔為你收集整理的python实现快排算法_Python实现快速排序算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。