1. 程式人生 > >快速排序——Python

快速排序——Python

大於 邊界條件 code 遞歸 cnblogs 方法 dom import choice

快速排序:

  在一組數據中選擇一個基準值,讓後將數據分為兩個部分,一部分大於基準,一部分小於基準,然後按此方法將兩個部分分組,直到不能再分為止。

  需要明白一個概念遞歸和分而治之的概念。

Python實現:

 1 # 快速排序
 2 
 3 import random
 4 
 5 def quick_sort(arr):
 6     # 邊界條件
 7     if len(arr) < 2:
 8         return arr
 9     key = random.choice(arr)    # 選擇基準
10     left = [i for i in arr if
i < key] 11 pivot = [i for i in arr if i == key] 12 right = [i for i in arr if i > key] 13 # 如果想將重復元素去掉用 key 將 pivot 代替即可 14 return quick_sort(left) + pivot + quick_sort(right) 15 16 L = [1, 2, 3, -8, 2, -2, -2, 4, 9, -5, 1, 6, 5] 17 print(quick_sort(L))

快速排序——Python