舞动排序:快速排序

时间:2020-09-04 08:33:30   收藏:0   阅读:45

排序思想

第一步:在数列中随意选取一个数,做为基准值;

第二步:数组中剩下的数与基准值依次比较,小于基准值的数放左边,大于基准值的数放右边;

第三步:左右两边的数重复第一第二步,直至排序完成

 

不明白?跳个舞吧https://www.bilibili.com/video/BV1Px411L7Tq

技术分享图片

 

def quick_sort(sort_list):
    # 判断排序数列长度,是后面递归的出口
    if len(sort_list) < 2:
        return sort_list
    # 选数列的第一个数为基准值
    mid = sort_list[0]
    # 定义基准值左右两个数列
    left, right = [], []
    # 从原始数列中移除基准值
    sort_list.remove(mid)
    for item in sort_list:
        # 小于等于基准值的数,放左边
        if item <= mid:
            left.append(item)
        else:
            # 大于基准值放右边
            right.append(item)
    # 使用递归,对左右两个数列进行快排
    return quick_sort(left) + [mid] + quick_sort(right)


a = [12, 32, 1, 2, 300, 33, 0]
print(quick_sort(a))

 

原文:https://www.cnblogs.com/dc2019/p/13611031.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!