各种排序的时间复杂度、空间复杂度、稳定性
文章目录
- 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 外部排序
各种排序的时间复杂度、空间复杂度、稳定性相关推荐
- 简单选择排序,时间复杂度+空间复杂度+稳定性+亲测java代码
直接上代码,看注释就能懂 时间复杂度: 最优O(n^2), 最坏时间复杂度为 O(n^2) , 平均时间复杂度为O(n^2) . 空间复杂度:O(1). 不稳定 package sort;public ...
- 912. 排序数组——归并排序Java时间复杂度空间复杂度稳定性分析
目录 1.题目 2.思路 归并排序--nlogn 思想--递归 代码 时间复杂度--O(nlogn) 空间复杂度--O(n) 稳定性--稳定 3.结果 1.题目 2.思路 这个题可以作为练习手写各种排 ...
- 排序算法 时间复杂度+空间复杂度 总结
辅助记忆 时间复杂度记忆: 冒泡.选择.直接 排序需要两个for循环,每次只关注一个元素,平均时间复杂度为O(n2)O(n2)(一遍找元素O(n)O(n),一遍找位置O(n)O(n)) 快速.归并.希 ...
- 软考排序算法时间复杂度和稳定性助记
B站马士兵老师的视频--30秒让你记住所有排序算法-宋词记忆法
- 排序算法时间复杂度和稳定性
速查表
- 九大排序算法时间复杂度、空间复杂度、稳定性
排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O(n²) O(n²) O(n) O(1) 稳定 直接选择排序 O(n²) O(n²) O(n) O(1) 不稳 ...
- 各个排序算法的时间复杂度、稳定性、快排的原理以及图解
目录 一.数据结构的八大排序算法总结笔记: 1.常见的数据结构排序算法如下图所示: 2.常见数据结构排序算法的时间复杂度.空间复杂度.稳定性介绍如下图所示: 二.排序算法逐一介绍: 1.直接插入排序: ...
- 10大排序算法时间复杂度和空间复杂度总结
中文名称 英文名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 选择排序 Selection n2 n2 n2 1 不稳 冒泡排序 Bubble n2 n2 n 1 稳 插入排 ...
- 常见排序算法的最好、最坏、平均时间复杂度、稳定性、是否基于比较
先看表格 分类 算法 时间复杂度 空间复杂度 稳定性 关联性 最好 最差 平均 插入排序 直接插 ...
- js排序的时间复杂度_JavaScript排序算法及性能比较
JavaScript排序算法及性能比较 类别: 技术·JS 时间:2017-03-13 19:15:30 字数:7651 版权所有,未经允许,请勿转载,谢谢合作~ #### 前言 对很多同学来说,启蒙 ...
最新文章
- [译文]c#扩展方法(Extension Method In C#)
- 三星 P600 android,顶级硬件S pen笔手写—三星P600_三星 Galaxy Note 10.1 2014 Edition P600_平板电脑市场-中关村在线...
- CSS实现垂直居中的方法
- TCP/IP、Http的区别
- shiro中文api_Shiro
- python平均数 中位数函数_R和python语言如何求平均值,中位数和众数
- Python学习day02_数字类型 与 布尔类型 短路逻辑和运算符优先级
- linux文件描述符有什么用,linux上的文件描述符3有什么特别之处?
- c语言中注释参与程序设计的编译吗,C语言程序设计(第4章函数)6
- java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
- 个人作业——软件工程实践总结作业
- 中国 各大银行bankCode 开户行代码和名称 高清银行图标
- 嵌入式系统硬件构成-基于ARM的嵌入式开发板介绍
- 用matlab实现女声变男声步骤,男变女声、女变男声、如何实现变声效果?
- 操作系统:什么是中断?
- 数据中台稳定性的“四高” | StartDT Tech Lab 18
- 目标跟踪(1)基于OpenCV实现单目标跟踪
- [论文速度] 同时解决成像时,曝光不足和曝光过度问题:Deep Reciprocating HDR Transformation
- 恋词题源报刊Unit5背诵
- IOS(iPad、iPhone)删除已下载系统更新
热门文章
- 多项logit模型 matlab,用matlab求解logit模型的问题,
- 我的科研生活2017-3-18
- FairyGUI学习使用
- 全网首发AutoCAD 2011 XP_Win7 64位精简版
- opencv Imshow出错
- 计算机 usb记录 深度,隐私信息自检查工具-EvidenceToolkit
- xp系统t3登录不到服务器,用友T3软件服务器xp系统,客户端xp系统,登不上服务器...
- PJSIP视频卡顿的原因以及解决办法
- 基于知识蒸馏的心律失常分类模型
- 排查计算机安全隐患,临澧四项措施强化计算机安全保密管理