7. 快速排序
约 132 字
预计阅读 1 分钟
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import random
def func(li):
if len(li) <= 1: # 把列表一直分到一个元素为止
return li
n = li[0] # 取第一个数作为比较
left = [i for i in li[1:] if i <= n] # 比第一个数小的放左边
right = [j for j in li[1:] if j > n] # 比第一个数大的放右边
return func(left) + [n] + func(right) # 递归到列表元素个数为1, 再合并返回
a = [k for k in range(33)]
random.shuffle(a)
print(func(a))
|