首页 > 代码库 > 快速排序——Python
快速排序——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))
快速排序——Python
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。