文章目录

  • 1 冒泡排序
  • 2 选择排序
  • 3 插入排序
  • 4 归并排序
  • 5 快速排序
  • 6 堆排序
  • 7 桶排序
  • 8 基数排序
  • 9 外部排序

1 冒泡排序

时间复杂度:O(n*n)
稳定性:稳定
空间复杂度:O(1)

2 选择排序

时间复杂度:O(n*n)
稳定性:不稳定
空间复杂度:O(1)

3 插入排序

时间复杂度:O(n*n)
稳定性:稳定
空间复杂度:O(1)

4 归并排序

时间复杂度:O(nlogn)
稳定性:稳定
空间复杂度:O(n)

5 快速排序

时间复杂度:O(nlogn)
稳定性:不稳定
空间复杂度:

最坏情况下归并排序效率大于快速排序,平均情况下两者的效率时间相同。归并排序需要的更多的额外空间。

6 堆排序

时间复杂度:O(nlogn)
稳定性:不稳定
空间复杂度:O(1)

特点:1、堆是一个完全二叉树。2、每个结点大于或者等于它的任意一个结点。
完全二叉树:除最后一层每一层都被填满,如果最后一层没有填满那么它的叶节点全部是偏向左的。

存储:如果堆的大小是已知的那么可以将堆存储在ArrayList里面,位置i处的节点左孩子是2i+1,右孩子是2i+2,父节点是(i-1)/2。

过程:将需要排序的数据全部加入到堆中,然后迭代地返回根结点。根是最大数的节点。

说明:基于比较的排序算法最好是O(nlogn)

7 桶排序

时间复杂度:O(n+N)
空间复杂度:O(n+N)
稳定性:不稳定
适用类型:小整数的排序,整数过大使用基数排序。
基于ArrayList实现

8 基数排序

时间复杂度:O(dn)基数位置的最大值。例如213基数位置的最大值是3,相当于进行了d次桶排序。
稳定性:稳定
空间复杂度:O(dn)
特点:使用十个桶,桶排序是稳定的。

9 外部排序

各种排序的时间复杂度、空间复杂度、稳定性相关推荐

  1. 简单选择排序,时间复杂度+空间复杂度+稳定性+亲测java代码

    直接上代码,看注释就能懂 时间复杂度: 最优O(n^2), 最坏时间复杂度为 O(n^2) , 平均时间复杂度为O(n^2) . 空间复杂度:O(1). 不稳定 package sort;public ...

  2. 912. 排序数组——归并排序Java时间复杂度空间复杂度稳定性分析

    目录 1.题目 2.思路 归并排序--nlogn 思想--递归 代码 时间复杂度--O(nlogn) 空间复杂度--O(n) 稳定性--稳定 3.结果 1.题目 2.思路 这个题可以作为练习手写各种排 ...

  3. 排序算法 时间复杂度+空间复杂度 总结

    辅助记忆 时间复杂度记忆: 冒泡.选择.直接 排序需要两个for循环,每次只关注一个元素,平均时间复杂度为O(n2)O(n2)(一遍找元素O(n)O(n),一遍找位置O(n)O(n)) 快速.归并.希 ...

  4. 软考排序算法时间复杂度和稳定性助记

    B站马士兵老师的视频--30秒让你记住所有排序算法-宋词记忆法

  5. 排序算法时间复杂度和稳定性

    速查表

  6. 九大排序算法时间复杂度、空间复杂度、稳定性

    排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O(n²) O(n²) O(n) O(1) 稳定 直接选择排序 O(n²) O(n²) O(n) O(1) 不稳 ...

  7. 各个排序算法的时间复杂度、稳定性、快排的原理以及图解

    目录 一.数据结构的八大排序算法总结笔记: 1.常见的数据结构排序算法如下图所示: 2.常见数据结构排序算法的时间复杂度.空间复杂度.稳定性介绍如下图所示: 二.排序算法逐一介绍: 1.直接插入排序: ...

  8. 10大排序算法时间复杂度和空间复杂度总结

    中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection n2 n2 n2 1 不稳 冒泡排序 Bubble n2 n2 n 1 稳 插入排 ...

  9. 常见排序算法的最好、最坏、平均时间复杂度、稳定性、是否基于比较

    先看表格 分类 算法 时间复杂度 空间复杂度       稳定性           关联性        最好          最差        平均       插入排序        直接插 ...

  10. js排序的时间复杂度_JavaScript排序算法及性能比较

    JavaScript排序算法及性能比较 类别: 技术·JS 时间:2017-03-13 19:15:30 字数:7651 版权所有,未经允许,请勿转载,谢谢合作~ #### 前言 对很多同学来说,启蒙 ...

最新文章

  1. [译文]c#扩展方法(Extension Method In C#)
  2. 三星 P600 android,顶级硬件S pen笔手写—三星P600_三星 Galaxy Note 10.1 2014 Edition P600_平板电脑市场-中关村在线...
  3. CSS实现垂直居中的方法
  4. TCP/IP、Http的区别
  5. shiro中文api_Shiro
  6. python平均数 中位数函数_R和python语言如何求平均值,中位数和众数
  7. Python学习day02_数字类型 与 布尔类型 短路逻辑和运算符优先级
  8. linux文件描述符有什么用,linux上的文件描述符3有什么特别之处?
  9. c语言中注释参与程序设计的编译吗,C语言程序设计(第4章函数)6
  10. java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
  11. 个人作业——软件工程实践总结作业
  12. 中国 各大银行bankCode 开户行代码和名称 高清银行图标
  13. 嵌入式系统硬件构成-基于ARM的嵌入式开发板介绍
  14. 用matlab实现女声变男声步骤,男变女声、女变男声、如何实现变声效果?
  15. 操作系统:什么是中断?
  16. 数据中台稳定性的“四高” | StartDT Tech Lab 18
  17. 目标跟踪(1)基于OpenCV实现单目标跟踪
  18. [论文速度] 同时解决成像时,曝光不足和曝光过度问题:Deep Reciprocating HDR Transformation
  19. 恋词题源报刊Unit5背诵
  20. IOS(iPad、iPhone)删除已下载系统更新

热门文章

  1. 多项logit模型 matlab,用matlab求解logit模型的问题,
  2. 我的科研生活2017-3-18
  3. FairyGUI学习使用
  4. 全网首发AutoCAD 2011 XP_Win7 64位精简版
  5. opencv Imshow出错
  6. 计算机 usb记录 深度,隐私信息自检查工具-EvidenceToolkit
  7. xp系统t3登录不到服务器,用友T3软件服务器xp系统,客户端xp系统,登不上服务器...
  8. PJSIP视频卡顿的原因以及解决办法
  9. 基于知识蒸馏的心律失常分类模型
  10. 排查计算机安全隐患,临澧四项措施强化计算机安全保密管理