快速排序之Python實現

2021-10-08 16:39:32 字數 706 閱讀 2282

關於快速排序的講解在本人博文快速排序詳解中,本門只展示python的**實現:

def quick_sort(data):    

"""快速排序"""

if len(data) >= 2: # 遞迴入口及出口

mid = data[len(data)//2] # 選取基準值,也可以選取第乙個或最後乙個元素

left, right = , # 定義基準值左右兩側的列表

data.remove(mid) # 從原始陣列中移除基準值

for num in data:

if num >= mid:

else:

return quick_sort(left) + [mid] + quick_sort(right)

else:

return data

# 示例:

array = [2,3,5,7,1,4,6,15,5,2,7,9,10,15,9,17,12]

print(quick_sort(array))

# 輸出為[1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 9, 9, 10, 12, 15, 15, 17]

排序演算法之快速排序的python實現

通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料都要小,然後再按此方法對這兩部分資料分別進行快速排序。快速排序演算法的工作原理如下 1.從數列中挑出乙個元素,稱為 基準 pivot 2.重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺...

python實現快速排序

快速排序的思想是任意選取要排序的list中的乙個數pivot,每次遞迴時將list按照 小於pivot的,pivot,大於pivot的 排序,再對小於和大於pivot部分分別快速排序。function quicksort list select a pivot foreach x in list i...

Python實現快速排序

快速排序的思路 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 1 設 keys 又稱為監視哨 等於 numlist 0 i等於0 j等於len numlist 1,即如下 numlist 6,8,1,4,3,9,5,4,11,2,2,15,6 keys 6 i 0 j2 1...