排序算法的应用
0.利用算法的整体对各种数据排序
在工商业中的各种交易数据,职场,学校中各种员工学生的信息等等.一般涉及数据存储的地方都会有排序算法的应用
1.利用算法中的一部分解决某些问题
- a.逆序对数量与插入排序交换次数的对应关系
- b.中位数(或寻找第k小的值问题)与快排中切分的思想.
2.较复杂算法中应用到排序算法
- a.优先队列与调度问题
- b.微积分曲线下区域面积,优先队列中存储一组间隔下每段的近似精确度,将精确度最低的间隔删去分成两个间隔,然后重新加入队列.
- c.A*算法与优先队列
- d.图搜索算法:Prim,Dijkstra算法
- e.霍夫曼编码
排序算法总结
算法名称 | 时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|
插入排序 | O( n2 n 2 ) | O(1) | 稳定 |
选择排序 | O( n2) n 2 ) | O(1) | 不稳定 |
希尔排序(改进的插入排序) | 不确定,但小于O( n2 n 2 ) | O(1) | 不稳定 |
快速排序 | O(nlgn) | O(lgn) | 不稳定 |
三向快速排序 | >O(n);<O(nlgn) | O(lgn) | 不稳定 |
归并排序 | O(nlgn) | O(n) | 稳定 |
堆排序 | O(nlgn) | O(1) | 不稳定 |