快速排序——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))

 

转载于:https://www.cnblogs.com/tingshuo123/p/6935513.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值