排序方式
2016-03-30 16:38
162 查看
分类 | 时间复杂度 | 空间复杂度 | 稳定性 | 算法描述 |
直接插入排序 | 最好O(n) 最坏O(n^2) 平均O(n^2) | O(1) 需要一个监视哨 | 稳定 | 直接插入排序所产生的有序区不一定是全局有序的 每一趟不一定将一个元素放在最终位置上 插入排序效率与待排序数据的顺序有关,当正序时效率最高,反序时效率最低 |
折半插入排序 | 平均O(n^2) | O(1) | 稳定 | 折半插入排序,在直接插入排序的基础上,减少了寻找有序区合适位置的比较次数,而元素的移动次数不变 |
希尔排序 又称缩小增量排序 | 平均O(n^1.3) | O(1) | 不稳定 | 希尔排序每一趟并不产生有序区 每一趟不一定将一个元素放在最终位置上 希尔排序的效率与待排序数据的顺序有关,当正序时效率最高,反序时效率最低 |
分类 | 时间复杂度 | 空间复杂度 | 稳定性 | 算法描述 |
冒泡排序 | 最坏O(n^2) 平均O(n^2) | O(1) | 稳定 | 起泡排序中所产生的有序区一定是全局有序的 每一趟排序都将一个元素放到最终位置上 正序效率最高,逆序效率最低 |
快速排序 | 平均O(nlog2n) | 递归栈中占空间 至少O(log2n) 最多O(n) | 不稳定 | 快速排序不产生有序区 但每一趟都归位一个元素 与待排数据顺序有关,正序和逆序时效率都低,只有当数据随机分布时,每划分的子区间长度大致相等时,效率最高 |
分类 | 时间复杂度 | 空间复杂度 | 稳定性 | 算法描述 |
简单选择排序 | O(n^2) | O(1) | 不稳定 | 有序区全局有序 每趟都归位一个元素 时间复杂度与待排序元素顺序无关 |
堆排序 | O(nlog2n) | O(1) | 不稳定 | 有序区一定全局有序,有序区全部大于或小于无序区中的关键字 每趟归位一个元素 时间复杂度与待排序元素无关 |
相关文章推荐
- android bitmap compress(图片压缩)
- java中的匿名内部类总结
- printf中几个不常用的格式说明
- hbase-default.xml file seems to be for an older version of HBase ,this version is 1.2.0
- 【甘道夫】HBase(0.96以上版本号)过滤器Filter具体解释及实例代码
- 基于谱减法的声音去噪
- dfs之地图染色
- Dispatcher & Redirect
- ListView控件的onItemClick事件和item中Button的onClick事件冲突的解决办法
- 【商业模式】:网页,百度,阿里,腾讯的商业模式
- Android Fragments 详细使用
- Nginx-添加echo模块
- JNI接口函数 (1)
- 判断ios中是否安装了某些软件
- jstl fmt标签笔记
- pyspider创建淘女郎图片爬虫任务-源码解析
- eclipse Mars查看JDK源码
- MVP模式实现登录功能
- bootstrap组件
- javaweb学习总结(二十四)——jsp传统标签开发