快速排序——Python

快速排序:

  在一组数据中选择一个基准值,让后将数据分为两个部分,一部分大于基准,一部分小于基准,然后按此方法将两个部分分组,直到不能再分为止。

  需要明白一个概念递归和分而治之的概念。

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))

 

posted @ 2017-06-02 23:06  TingShuo  阅读(196)  评论(0编辑  收藏  举报