【快速排序的python实现】

本文详细介绍了快速排序算法,这是一种基于交换的排序方法,利用分而治之的思想,通过设定枢轴量进行划分。算法在最好情况下时间复杂度为O(nlog2n),平均时间复杂度同样为O(nlog2n),但在最坏情况下(已排序序列)为O(n2)。快速排序在实际应用中因其高效性能而被广泛使用。
摘要由CSDN通过智能技术生成

快速排序是经常考查到的排序算法。快速排序实如其名,即速度快且效率高。在绝大多数情况下,是处理大数据最快的排序算法之一。

快速排序是“交换”类的排序,通过多次划分操作实现排序,也是一种分而治之思想在排序算法上的典型应用。本质上来看,快速排序算是在冒泡排序基础上的递归分治法。

算法步骤:
1、从数列中挑出一个元素,作为“枢轴量”;
2、重新排序数列,所有元素比枢轴量小的移动至其前面,所有元素比枢轴量值大的移动至其的后面(相同的数可以到任一边);
3、递归地把小于枢轴量值元素的子数列和大于枢轴量值元素的子数列重复前两步操作,直至子数列长度为0或1。

快速排序最好情况下的时间复杂度为O(nlog2n),待排序列越接近无序,其效率越高;最坏情况下时间复杂度为O(n2)(序列已经有序的状态),待排序列越接近有序,其效率越低。平均时间复杂度为O(nlog2n)。

虽然有多个时间复杂度为O(nlog2n)的排序算法,但这里称之为快速排序算法而不是其他排序,是因为其他排序算法的基本操作执行次数的多项式最高项为X*nlog2,X为系数,快速排序的X最小,可见其在最高级别的算法中是最好的,故叫快速排序。

欢迎大家转发,一起传播知识和正能量,帮助到更多人。辛苦大家转发时注明出处(也是咱们公益编程交流群的入口网址),刘经纬老师共享知识相关文件下载地址为:http://liujingwei.cn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘经纬老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值