


























主要测试代码:
int main(void)
{
PrintDesc();
//cal_time(p_func_arr, ARRAY_SIZE(p_func_arr));
clock_t t_start; /* start time when test starts */
clock_t t_end; /* end time when test ends */
t_start
= clock(); /* get start time */测试结果:
1. 冒泡排序
---------- CL ----------
[冒泡排序]
数据量:1000 ,循环次数:100 ,平均排序时间: 0.007 s
数据量:
10000 ,循环次数:100 ,平均排序时间: 0.659 s输出完成 (耗时: 0 秒)
当测试100000数据量的时候就很慢了,我等到3分钟的时候已经等不下去了,直接CUTE掉了(因为这里是十万数据*100次循环==千万数据了)
冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。时间复杂度O(n2)。 小数据量时使用。
2.插入排序
---------- CL ----------
[插入排序]
数据量:1000 ,循环次数:100 ,平均排序时间: 0.002 s
数据量:
10000 ,循环次数:100 ,平均排序时间: 0.190 s时间复杂度O(n2),小数据量时使用。
3. 选择排序
---------- CL ----------
[选择排序]
数据量: 1000 ,循环次数:100 ,平均排序时间: 0.003 s
数据量:
10000 ,循环次数:100 ,平均排序时间: 0.282 s输出完成 (耗时:
0 秒)时间复杂度O(n2),小数据量时使用。
4. 快速排序
---------- CL ----------
[快速排序]
数据量: 10000 ,循环次数:100 ,平均排序时间: 0.003 s
数据量:
100000 ,循环次数:100 ,平均排序时间: 0.037 s数据量:
1000000 ,循环次数:100 ,平均排序时间: 0.420 s实际应用中用的最多的,也是最常见的一种排序方法,其主要思想是用了分治法
时间复杂度O(nlogn)
5. 归并排序
---------- CL ----------
[归并排序]
数据量: 10000 ,循环次数:100 ,平均排序时间: 0.005 s
数据量:
100000 ,循环次数:100 ,平均排序时间: 0.056 s数据到达百万的时候会自己CUTE掉
时间复杂度O(nlogn)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。