每天一个小算法----快速排序

本文介绍了快速排序算法,一种由东尼·霍尔在1960年提出的高效排序方法。快速排序通过选取基准数并进行分区操作,递归地将小于基准的数放在左侧,大于或等于基准的数放在右侧,最终实现整个序列的排序。提供的Python代码展示了快速排序的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.快速排序
快速排序(Quick Sort),是在上世纪60年代,由美国人东尼·霍尔提出的一种排序方法。这种排序方式,在当时已经是非常快的一种排序了。因此在命名上,才将之称为“快速排序”。

算法过程
先从数据序列中取出一个数作为基准数(baseline,习惯取第一个数)。
分区过程,将比基准数小的数全放到它的左边,大于或等于它的数全放到它的右边。
再对左右区间递归(recursive)重复第二步,直到各区间只有一个数。
因为数据序列之间的顺序都是固定的。最后将这些子序列一次组合起来,整体的排序就完成了

def quick_sort(lst):  
    n = len(lst)
    if n <= 1:
        return lst
    baseline = lst[0]  
    left = [lst[i] for i in range(1, len(lst)) if lst[i] < baseline]  
    right = [lst[i] for i in range(1, len(lst)) if lst[i] >= baseline]
    return quick_sort(left) + [baseline] + quick_sort(right)

在这里插入图片描述
今日音乐
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值