我们来分析一下快速排序法的性能。

快速排序的时间性能取决于快速排序递归的深度,

可以用递归树来描述递归算法的执行情况。

如图9‐9‐7所示,它是{50,10,90,30, 70,40,80,60,20}在快速排序过程中的递归过程。由于我们的第一个关键字是50,正好是待排序的序列的中间值,因此递归树是平衡的,此时性能也比较好。


空间复杂度

主要是递归造成的栈空间的使用,最好情况,递归树的深度为logn

其空间复杂度也就为 O(logn),

最坏情况

需要进行n‐1递归调用,其空间复杂度为O(n),

平均情况,

空间复杂度也为O(logn)。

可惜的是,由于关键字的比较和交换是跳跃进行的,因此,

快速排序是一种不稳定的排序方法。

参考文章https://blog.csdn.net/nsjlive/article/details/102531375

快速排序的时间复杂度和空间复杂度相关推荐

  1. 快速排序的时间复杂度与空间复杂度

    C/C++中快速排序的时间空间复杂度分析 1.什么是快速排序 我理解的是,快速排序用的是分治法,运用的递归的算法,先挑选一个基准值,小于基准值的数放在左边, 大于基准值的数放在基准值的右边,这样就泾渭 ...

  2. 快速排序及时间复杂度和空间复杂度

    快速排序思想: 快排的核心是分治.以从小到大排序为例,把第一个值作为基准值,先从最右边进行比较,若比基准值大,那么右边的指针左移一位,如果比基准值大,那么交换基准值和当前位置的值,改变比较方向,开始从 ...

  3. 排序算法之 归并排序 及其时间复杂度和空间复杂度

    在排序算法中快速排序的效率是非常高的,但是还有种排序算法的效率可以与之媲美,那就是归并排序:归并排序和快速排序有那么点异曲同工之妙,快速排序:是先把数组粗略的排序成两个子数组,然后递归再粗略分两个子数 ...

  4. 常用的排序算法的时间复杂度和空间复杂度

    常用的排序算法的时间复杂度和空间复杂度                                           1.时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出 ...

  5. 时间复杂度和空间复杂度的故事

    前言一 很多搞 iOS 开发的同学都没有学过算法,有一些甚至没有学过数据结构.在很多人的观念中,算法和数据结构只是在面试的时候有用. 这些人的想法对吗?在我看来,也对,也不对. 对于 iOS 开发来说 ...

  6. 常用的排序算法的时间复杂度和空间复杂度 .

    常用的排序算法的时间复杂度和空间复杂度 排序法 最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1) 快速排序 O(n2) O(n*log2n) 不稳定 ...

  7. 各种常用排序算法的时间复杂度和空间复杂度

    https://blog.csdn.net/jiajing_guo/article/details/69388331 一.常用排序算法的时间复杂度和空间复杂度表格 二.特点 1.归并排序: (1)n大 ...

  8. 各种排序方法的时间复杂度、空间复杂度和稳定性统计表

    排序法  最差时间分析 平均时间复杂度 稳定度 空间复杂度 冒泡排序 O(n2) O(n2) 稳定 O(1)  快速排序 O(n2) O(n*log2n)  不稳定 O(log2n)~O(n) 选择排 ...

  9. 【数据结构入门】算法的时间复杂度和空间复杂度详解

    文章目录 (1)算法效率 (2)时间复杂度的计算 1)什么是时间复杂度 2)大O渐进表示法(估算) 3)时间复杂度计算实例 4)总结 5)一些思考 (3)空间复杂度的计算 (4)常见复杂度对比 本篇前 ...

  10. 常见排序算法及其对应的时间复杂度、空间复杂度

    常见排序算法及其对应的时间复杂度.空间复杂度: 排序算法经过长时间演变,大体可以分为两类:内排序和外排序.在排序过程中,全部记录存放在内存,则成为内排序:如果排序过程中需要使用外存,则称为外排序,本文 ...

最新文章

  1. 如何用 Redis 解决海量重复提交问题
  2. python批量删缩进_Python工具PyCharm常用快捷键
  3. 为什么是容器,Docker和Kubernetes?
  4. spring(2)装配Bean
  5. php-5.2.6安装,php5.2.6安装openssl.o扩展,make时报错?
  6. MFC多线程的创建,包括工作线程和用户界面线程
  7. 如何用php饼型图,php绘制饼状图的代码举例
  8. Mac笔记本Postman升级为新版本后,打开时一直转圈,无法使用
  9. [转载]运维自动化201009
  10. ImageAI的介绍(1)
  11. 【基于 C++ 面向 Window API 的自制工具】批量重复单键操作器
  12. ssm+boot+thymeleaf博客系统完成总结
  13. TP99 TP999
  14. openGL之API学习(七十)windows的opengl扩展wgl
  15. 【重识云原生】第六章容器基础6.4.10.2节——StatefulSet常规操作实操
  16. JAVA 学习日志 测试抽象类的程序,每天进步/退步一点点,变化很大哦,努力!
  17. ChatGPT助力之论文速成秘籍
  18. 克隆vmware虚拟机
  19. 解决Vmware虚拟机下运行Linux电脑发出声音
  20. Unity开发OpenXR | (二)使用 OpenXR 制作一款简单VR示例场景 的全过程详细教程,包含两个实战案例。

热门文章

  1. 【NIO】解读 java.nio.channels.Channel
  2. 一条机器“龙”,堪称史上最快异形机器人!
  3. 异形图片自动排版之装箱算法
  4. win10系统设置还原点,系统永不奔溃
  5. 优化 AIX 6.1 的性能
  6. 用Python写个自动批改作业系统~
  7. 【人工智能Prolog】mother、father和grandpa
  8. java中awt和swing是什么关系
  9. 世界上最健康的作息时间表
  10. win10删除多余账户_Win10系统如何删除账户?Win10系统删除账户的方法