75-递归函数练习(快速排序)
【75-递归函数练习(快速排序)】思路:
1、假设列表中第一个数是中间值,比它小的数字放到smaller列表中,比它的大的数字放到larger列表中。再将这三项拼接起来。
2、因为smaller和larger仍然是无序列表,需要使用相同的方法继续分割。
3、如果列表的长度是0或1,那么就没有必要再排序了。
from random import randintdef quick_sort(num_list):
if len(num_list) < 2:
return num_listmiddle = num_list[0]
smaller = []
larger = []
for i in num_list[1:]:
if i < middle:
smaller.append(i)
else:
larger.append(i)return quick_sort(smaller) + [middle] + quick_sort(larger)if __name__ == '__main__':
alist = [randint(1, 100) for i in range(10)]
print(alist)
print(quick_sort(alist))
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗
- 概率论/统计学|随机变量 的 分布函数 与 概率密度函数 的区别
- vue组件中为何data必须是一个函数()
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- R语言|R语言 函数
- 2018-05-30闭包和函数
- 函数的一些东西