2.3 运行时间
快速排序的运行时间在于你选择的基准值 。假设你一直都选择第一个元素作为基准值,且要处理的数组是有序的 。快速排序不检查数组元素的顺序,因此还是会尝试对其排序,但是这会有一个问题,每次选择第一个作为基准值,导致比基准值小的数组都是空的,使得调用栈非常高 。运行时间较长 。栈长表示为O(n) 。

文章插图
调用栈(最糟情况)
那有没有更好的办法呢?有的,我们可以参考二分查找的实现方法,每次选择中间的元素作为基准值,就会发现调用栈被减短了许多,不需要太多的递归调用,就会达到基线条件,最佳情况下栈长为O(logn) 。

文章插图
最佳情况
因此,在最糟糕的情况下(选择第一个为基准值)运行时间为O(n) 。在最佳情况下,运行时间仅为O(nlogn) 。
推荐阅读
- 无需重装WINDOWS将计算机恢复到初始状态
- 握感最好的鼠标 公认手感最好的大手鼠标
- TCP/IP 基础知识总结
- Python的从入门到精通的完整学习路线图
- 17 个电脑上必备的黑科技软件,很少有人知道
- 网络编辑必备的职业素养和要求
- Lombok入门使用教程及其优缺点详解
- 五子棋入门要诀 五子棋技术点拨
- 单反相机入门机推荐 价格 单反相机入门机推荐学生
- FastAPI入门
