码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序——Python

时间:2017-06-02 23:58:32      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:部分   大于   元素   分而治之   turn   边界条件   数据   分组   需要   

快速排序:

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

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

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

标签:部分   大于   元素   分而治之   turn   边界条件   数据   分组   需要   

原文地址:http://www.cnblogs.com/tingshuo123/p/6935513.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!