Python之快排算法
快排算法的思路:
- 从list中取出下标为0的值
- 定义三个list
- 进行循环,大于list[0]放入一个A,小于的放入B,其他的放入C
- 拼接:A+C+B
代码实现:
list = [13, 8, 11, 17, 5, 6, 1, 1, 1] def QuickSort(list): if len(list) <= 1: # 判断如果小于等于1,则无需排序,直接返回即可 return list else: key = list[0] # 获取list中下标为0的值(取值第一个) llist, rlist, mlist = [], [], [key] # 创建三个list for i in range(1, len(list)): # 因已经定义了key,随意从1取值 if list[i] < key: # 小于key放在一起 llist.append(list[i]) elif list[i] > key: # 大于key放在一起 rlist.append(list[i]) else: # 其他的放在一起 mlist.append(list[i]) return QuickSort(llist) + mlist + QuickSort(rlist) # 进行拼接
结果:
[1, 1, 1, 5, 6, 8, 11, 13, 17]
本文来自博客园,作者:他还在坚持嘛,转载请注明原文链接:他还在坚持嘛 https://www.cnblogs.com/brf-test/p/18203397