这是在我大学期间学习C语言时学到的几种常见的内部排序算法的。在大学期间,计算机相关专业的同学,只要掌握这几种排序算法就已经足够了!
小结:
1.学会使用随机函数randomize( )为数组赋初值要在头文件中添加#include 。
2.在做此程序之前基本上是在理解了各种排序过程以后完成的。
3.对排序算法的总结:
(1)若n较小(如n≤50),可采用直接插入或直接选择排序。当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。
(2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;
(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
快速排序是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短;堆排序所需的辅助空间少于快速排序,并且不会出现快速排序可能出现的最坏情况。这两种排序都是不稳定的。