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