数据结构 排序 总结
2007-04-12 18:29
381 查看
排序算法 | 最好时间 | 平均时间 | 最坏时间 | 辅助空间 | 是否稳定 |
直接插入 | n | n*n | n*n | 1 | 是 |
直接选择 | n*n | n*n | n*n | 1 | 否 |
冒泡 | n | n*n | n*n | 1 | 是 |
快速 | n*log(n) | n*log(n) | n*n | log(n) | 否 |
堆 | n*log(n) | n*log(n) | n*log(n) | 1 | 否 |
归并 | n*log(n) | n*log(n) | n*log(n) | n | 是 |
基数 | n | n | n | n+rd | 是 |
a. 插入和冒泡利用了“前面”的结果,而选择没有。
b. 就相邻元素比较交换算法而言,插入排序已经做到了最好。
(2)快速、堆、归并
a. 对于比较排序,不论何种算法,其W(n) >= O(n * log(n)), A(n) >= O(n * log(n)),即快速、堆、归并已经做到了最好。(使用判定树证明)
b. 严 《数据结构》P292 斯特林公式
n | 1 | 2 | 3 | 4 | 5 | 6 |
ceil(log n!) | 0 | 1 | 3 | 5 | 7 | 10 |
d. 与插入相结合,当n<20时,使用插入排序,而不是快速排序。
相关文章推荐
- 数据结构-排序总结(冒泡 插入 选择 归并)
- 关于数据结构三种简单的排序总结
- [置顶] 数据结构知识点总结--排序
- 数据结构(二)排序总结
- 数据结构排序总结
- 关于数据结构中冒泡排序和选择排序的总结
- 数据结构各种排序java实现个人总结
- 数据结构复习 快速排序个人总结
- 数据结构的排序总结
- 数据结构中的各种排序---总结篇
- 数据结构学习系类列十六-排序总结篇
- 数据结构 JAVA描述(十三) 排序总结
- 数据结构面试之十二——排序3(排序算法归类、排序时间、空间复杂度、稳定性总结)
- 数据结构中的各种排序---总结篇
- 数据结构--排序总结
- 算法与数据结构-常用排序算法总结1-比较排序
- 数据结构排序之总结2
- 数据结构第十章 排序 总结
- 各种排序(数据结构复习之内部排序算法总结)
- 数据结构-链表排序总结