用Python實現快速排序算法

一:在學習快排前先了解下遞歸函數
在函數內部,可以調用其他函數。如果一個函數在內部調用自身本身,這個函數就是遞歸函數。
舉個例子,我們計算1+2+3+…+100,用函數sum(n)表示
def sum(n):
if n==1:
return 1
return n+sum(n-1)

print(sum(100))

代碼分解理解就是先定義一個求和函數,如果n==1,就返回1,否則就是n+sum(n-1),如果n=3, return 3+sum(2),即return 3+2+sum(1)=renturn 3+2+1 最後返回6。這樣就好理解了,其實我們就是將大問題拆成了一個個小問題。先解決大問題,再用同樣的方法解決小問題。

二:理解快速排序的思路
策略:把一個序列分成較小和較大的2個子序列,然後遞歸的排序兩個子序列
快速排序是在一個序列(list)裏挑選一個基準值,重新排序數列,所有比基準值小的元素排在基準值的左邊,所有比基準值大的元素排在基準值的右邊,然後遞歸地將小於基準值元素的子序列和大於基準值元素的子序列排序。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章