目录:
1、快排原理
2、快排核心代码
1.1 快排时间复杂度
最好情况是O(n Log n) ,最差是O(n2)
1.2 原理
快排的原理,他快就快在 不停的分组,以左边第一个数A为基准,比A小的分在左边的子数列中,比A大的分在右边的子数列中。直至不能在分,然后就开始做合并,按 left [base] right ,序列化合并得到新数列,直到合并完成所有子数列。
1.3 核心代码
在这里插入代码片
import timeit
iList= randomList(20)
def quickSort(iList):
if len(iList) <= 1:
return iList
left = []
right = []
for i in iList[1: ]:
if i <= iList[0]:
left.append(i)
else:
right.append(i)
return quickSort(left) + [iList[0]] +quickSort(right)
if __name__ == '__main__':
print(iList)
print(quickSort(iList))
print(timeit.timeit("quickSort(iList)","from __main__ import quickSort,iList",number=100))