Sort
来源:互联网 发布:日式装修风格知乎 编辑:程序博客网 时间:2024/06/07 23:37
堆排序,具有空间原址性:任何时候都只需要常数个额外的元素空间存储临时数据。
怎么体现出空间原址性?(问题一)
摘自http://blog.csdn.net/mbuger/article/details/67643185
(1)若n较小(如n≤50),可采用直接插入或直接选择排序。
当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
(2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;
堆排序所需的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏情况。这两种排序都是不稳定的。
若要求排序稳定,则可选用归并排序。但前面介绍的从单个记录起进行两两归并的排序算法并不值得提倡,
通常可以将它和直接插入排序结合在一起使用。先利用直接插入排序求得较长的有序子序列,然后再两两归并之。
怎么体现出空间原址性?(问题一)
利用同一存储单元存储计算输入、输出数据的方法。
摘自http://blog.csdn.net/mbuger/article/details/67643185
(1)若n较小(如n≤50),可采用直接插入或直接选择排序。
当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
(2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;
堆排序所需的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏情况。这两种排序都是不稳定的。
若要求排序稳定,则可选用归并排序。但前面介绍的从单个记录起进行两两归并的排序算法并不值得提倡,
通常可以将它和直接插入排序结合在一起使用。先利用直接插入排序求得较长的有序子序列,然后再两两归并之。
因为直接插入排序是稳定 的,所以改进后的归并排序仍是稳定的。
我学算法的目的,暂时是为了锻炼数学思维,用程序的思维来理解,来解决问题。暂时没到要写算法的那中程度,所以暂时的学习深度是理解知道哪种场景用什么就行。
阅读全文
0 0
- sort
- Sort
- sort
- Sort
- sort
- Sort
- sort
- sort
- Sort
- Sort
- sort
- sort
- sort
- sort()
- sort
- sort
- sort
- sort
- 使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
- Linux进程控制
- Maven 如何修改本地仓库与中央仓库
- MFC中分别用AfxMessage弹出框和编辑框显示多行内容(都是CString变量)
- 537. Complex Number Multiplication-Medium
- Sort
- JS点击编辑内容并保存
- 问题2
- 【CS231n_2017】2-Image Classification
- 4.石头剪子布
- 前端基础知识总结1——基础知识
- Java程序员从阿里、京东、美团面试回来,这些面试题你会吗?
- binder解析
- 【Scikit-Learn 中文文档】模型选择:选择估计量及其参数