快排的平均效率是NlogN,堆排也是。但是快排会退化,而推排似乎最坏情况下也是NlogN。所以想比较比较
快排我没有自己写,而是用了qsort()函数。堆排我是自己写的,优化过一次,也只是把36s降到30s
测试数据是随即生产的,规模在10000000(一千万)。一共十组,共二十个输入输出文件,总大小为1.05G
现在发代码了... 先是快排的:
接着是堆排序的,原来我写成类了,结果在优化的时候想是不是函数调用和其他的冗余操作拖慢了时间,所以直接写在里面了:
用数据说话。看评测结果了,快速排序的成绩

下面是堆排序的

堆排序用的时间大约是快排的两倍,函数库里的代码写的比我好也是一个影响因素吧。
堆排序与快速排序效率实践对比
本文通过实际代码对比了快速排序(使用qsort()函数)与优化后的堆排序在处理一千万随机数据时的效率。测试结果显示,在相同规模的数据下,堆排序的运行时间约为快速排序的两倍。尽管堆排序在最坏情况下仍保持O(NlogN)的时间复杂度,但函数调用和其他冗余操作可能影响了其性能。
1755

被折叠的 条评论
为什么被折叠?



