基本算法自学笔记(1)八大排序算法
来源:互联网 发布:生产看板管理系统 源码 编辑:程序博客网 时间:2024/05/17 09:02
详细资料http://blog.csdn.net/hguisu/article/details/7776068
算分分类
根据处理数据量的大小分为两类:内部排序和外部排序。
内部排序:数据记录在内存中进行排序。
外部排序:因排序的数据量太大,内存不能一次容纳全部的排序记录,在排序的过程中需要访问外存。
本次学习的八大排序算法全部是内部排序:
插入排序:直接插入排序
希尔排序
选择排序:简单选择排序
堆排序
交换排序:冒泡排序
快速排序
归并排序
基数排序
排序法最差时间分析
平均时间复杂度
稳定度
空间复杂度
冒泡排序
O(n2)
O(n2)
稳定
O(1)
快速排序
O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序
O(n2)O(n2) 稳定O(1) 二叉树排序
O(n2)O(n*log2n)不一顶O(n)插入排序O(n2)O(n2) 稳定O(1)堆排序O(n*log2n) O(n*log2n) 不稳定O(1) 归并排序
O(nlogn)O(nlogn)稳定
O(n)希尔排序----
----
不稳定O(1)希尔排序的分析是一个复杂的问题,以为它的时间是所取“增量”序列的函数,这涉及到一些数学上尚未解决的难题。
当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序、堆排序或归并排序序。
快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;
如果碰见一个和插入元素相等的,那么插入元素把想插入的元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
未完成
0 0
- 基本算法自学笔记(1)八大排序算法
- 八大基本排序算法
- 数据结构基本八大排序算法
- 数据结构基本八大排序算法
- 八大基本排序算法 序
- Java 八大排序算法(转来做笔记)
- 八大排序算法(1) 插入排序
- 八大排序算法学习笔记:插入排序(一)
- 八大排序算法学习笔记:冒泡排序
- JAVA八大排序算法(1)
- [算法]--八大排序算法
- 八大排序算法(转载)
- 八大排序算法(一)
- 八大排序算法(二)
- 八大排序算法(图文)
- 八大排序算法(python)
- 程序员面试笔记1-----八大排序算法实现
- 疯狂java之学习笔记(9)---------------八大排序算法
- JAVA总结2
- No resource found that matches the given name 'android:Widget....
- DNS系统原理及部分流程
- 虚拟内存
- oracle按方案模式导入导出数据
- 基本算法自学笔记(1)八大排序算法
- java抽象类与接口的区别
- 案例分析:基于消息的分布式架构
- POJ 3525 半平面交
- iOS delegate 传值步骤
- 使用ToggleButton按钮实现开关效果
- OpenCV系列:【1】,OpenCV3.1与opencv_contrib
- HDOJ 1050 Moving Tables
- 「学习笔记」3.17代码学习