首页 > 编程语言 > 详细

舞动排序:快速排序

时间:2020-09-04 08:33:30      阅读:43      评论:0      收藏:0      [点我收藏+]

排序思想

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

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

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

 

不明白?跳个舞吧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)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!