目录

1、空间复杂度

2、稳定性

3、运行时间

4、目前默认的sort内置函数排序函数

5、六种常用排序方法


1、空间复杂度

空间复杂度产生的原因有两个:重新定义了一块空间用于存储数据;递归产生了栈空间

冒泡排序、选择排序、堆排序和插入排序属于原地实现排序,因此空间复杂度为常数级别

快速排序,在算法中虽然没有使用到另外的空间,但是是通过递归来实现的,而递归会产生栈空间,一般为O(nlogn)

对于归并排序,内部也使用了递归,但是它使用了额外的空间来存储排好序的元素,其复杂度为O(n),大于递归复杂度O(nlogn)

2、稳定性

判断一个排序算法的稳定性就是通过看排序结束后两个相同数据的相对位置是否发生了变化,简单来说,挨个进行比较的排序算法是稳定的,但是飞着(即算法中出现跨越式交换元素)的排序算法是不稳定的。

就比如上述三个字典,我要是根据name进行排序,稳定的排序算法是,字典1和字典3的前后顺序是不改变的,比如利用冒泡排序算法,挨个进行比较,若两个元素一样则不交换,否则交换,这样就保证了相对位置不改变。

3、运行时间

快速排序<归并排序<堆排序

4、目前默认的sort内置函数排序函数

归并+插入排序

排序算法稳定!!!

5、六种常用排序方法

冒泡插入选择排序:

https://blog.csdn.net/qq_45769063/article/details/109361181

快速排序:

https://blog.csdn.net/qq_45769063/article/details/109297971

堆排序:

https://blog.csdn.net/qq_45769063/article/details/109352745

归并排序:

https://blog.csdn.net/qq_45769063/article/details/109357125

【数据结构】——排序算法系列总结相关推荐

  1. 【数据结构排序算法系列】数据结构八大排序算法

    排序算法在计算机应用中随处可见,如Windows操作系统的文件管理中会自动对用户创建的文件按照一定的规则排序(这个规则用户可以自定义,默认按照文件名排序)因此熟练掌握各种排序算法是非常重要的,本博客将 ...

  2. 数据结构排序算法实验报告_[数据结构与算法系列]排序算法(二)

    我的上一篇文章向大家介绍了排序算法中的冒泡排序.插入排序和选择排序.它们都是平均时间复杂度为 O(n^2) 的排序算法,同时还为大家讲解了什么是原地排序和什么是排序的稳定性.下图是这三种算法的比较,不 ...

  3. 数据结构与算法系列——排序(3)_折半插入排序

    1. 工作原理(定义) 二分插入排序(Binary Insertion Sort,折半插入排序 OR 拆半插入排序),采用折半查找方法. 二分查找插入排序的原理:是直接插入排序的一个变种:区别是:在有 ...

  4. 数据结构与算法系列——排序(10)_归并排序

    1. 工作原理(定义) 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,指的是将两个已经排序的序列合并成一个序列的操作.该算法是采用分治法(Divide and Conquer ...

  5. 排序算法系列:Shell 排序算法

    概述 希尔排序(Shell Sort)是 D.L.Shell 于 1959 年提出来的一种排序算法,在这之前排序算法的时间复杂度基本都是 O(n2n^{2}n2) 的,希尔排序算法是突破这个时间复杂度 ...

  6. 八十八、Python | 十大排序算法系列(下篇)

    @Author:Runsen @Date:2020/7/10 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  7. 八十七、Python | 十大排序算法系列(上篇)

    @Author:Runsen @Date:2020/7/10 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  8. 导师计划--数据结构和算法系列(上)

    导师计划已经开始一个月了,自己的讲解的课程选择了数据结构和算法.这个系列的讲解分为上下两章,javascript语言辅助.本篇文章为上章,涉及的内容是基本的数据结构.在日本,晚上没事安排@-@,时间还 ...

  9. 导师计划 -- 数据结构和算法系列(上)

    导师计划已经开始一个月了,自己的讲解的课程选择了数据结构和算法.这个系列的讲解分为上下两章,javascript语言辅助.本篇文章为上章,涉及的内容是基本的数据结构.在日本,晚上没事安排@-@,时间还 ...

  10. 精通八大排序算法系列:二、堆排序算法

    精通八大排序算法系列:二.堆排序算法 作者:July .二零一一年二月二十日 本文参考:Introduction To Algorithms,second edition. ------------- ...

最新文章

  1. ASP.NET画图控件 Chart Control 免费控件
  2. Linux Shell 脚本限制ssh最大用户登录数
  3. OA发展史:由点到生态
  4. Eclipse,myeclipse开发中常用技巧总结
  5. SQL注入之堆叠注入(sql-lab第38关)
  6. 配置多个git账号_在Windows下配置多个git账号
  7. Android Studio提示No virtual method asBitmap()Lcom/bumptech/glide/RequestBuilder
  8. python接口编程的好处_python接口自动化测试
  9. 批处理脚本 - 可移动的远程桌面启动器
  10. python pow_Python pow()
  11. qt 右键显示设置界面 后台运行_1.1安装Qt
  12. android 刷机时缺少驱动无法识别
  13. SPSS 数据的统计分析
  14. Windows 10中检查已安装编解码器的几个方法
  15. java json 乱码问题_java中json传输数据乱码问题
  16. 单实例安装elastic和启动报错解决
  17. Roll A Ball
  18. python画水平线和垂直线横线 纵线
  19. css好看的html径向渐变,CSS3径向渐变
  20. mysql几种性能测试的工具使用

热门文章

  1. css 相对定位 ie7问题
  2. 读取Exchange的用户未读邮件数的几种方法
  3. 【摘录】BREW应用的c++实现注意点
  4. Effective C# Item22:使用事件定义外发接口
  5. (function ( ){...})( ) IIFE 的原理
  6. 基于jsp+servlet完成的用户注册
  7. UI自动化之元素定位(xpath、css)
  8. [Spark]-RDD详解之变量操作
  9. java基础英语---第二十六天
  10. HDOJ5547 SudoKu