【算法-2】排序算法-快速排序,附python代码+注释

本文介绍了快速排序算法的基本思想,通过选取基准值并进行分区操作,将列表分为小于和大于基准值的两部分,然后递归地对这两部分进行相同操作,最终实现排序。文章提供了详细的Python代码示例及注释。
摘要由CSDN通过智能技术生成

概述

快速排序的整体思想是分治法
一开始寻找一个基准值,在我的这份代码中是取分区的最后一个值s,通过一次操作,将小于s的数放在s左侧,大于s的数放在s右侧。(这个操作在代码中体现为_partition()函数
我觉得理解好这个函数加上有分治迭代的思想就能掌握快速排序了
这样,通过s将原来的列表分为了左右两个子列表(左边都小于s,右边都大于s)。那么再对左右两个子列表同样进行上边的操作(这里有迭代的思想),就这样一直排下、分下去,直到最后分区只有一个数就结束了。

这里说的只是思想,具体操作如下代码

python示例代码

"""
快速排序 - 选择枢轴对元素进行划分,左边都比枢轴小右边都比枢轴大
"""


def quick_sort(origin_items, comp=lambda x, y: x <= y):
    items = origin_items[:]
    _quick_sort(items, 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值