快速排序——Python
阿新 • • 發佈:2017-06-03
大於 邊界條件 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