基本算法自学笔记(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
原创粉丝点击