10行代码讲解搞定,Python版排序算法中名副其实的快排方法-快速排序

目录:
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))

猜你喜欢

转载自blog.csdn.net/Irwin2020/article/details/107147549