python的快速排序算法

python的快速排序算法。
代码如下:

def quick_sort(numbers):
    if len(numbers) > 1:  # 长度为2及以上的情况
        mid = numbers[0]  # 假设numbers数列第一个numbers[0]就是就是中值mid
        left, right = [], []
        numbers.remove(mid)  # 移除numbers[0]
        for number in numbers:
            if number > mid:
                right.append(number)  # 右边列表right,放大于mid的数
            else:
                left.append(number)  # 左边数列left,放不大于中值mid的数
        return quick_sort(left) + [mid] + quick_sort(right)
        # left和right需要递归
    else:  # 数列numbers为空或者一个元素时候
        return numbers


if __name__ == '__main__':
    numbers = [2, 37, 21, 99, 51, 3, 4, 57, 9, 9, 45, 85, 66, 23, 13]
    numbers = quick_sort(numbers)
    print(numbers)

代码若不足请指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值