铠甲勇士拿瓦马灵灵:C语言高手请进!!

来源:百度文库 编辑:高考问答 时间:2024/05/04 05:50:26
我现在要编写一个程序,其要求是比较几种排序方法的效率问题,所以就需要通过比较每种方法对一组数据排序所用的时间。现在我想向各位大虾请教的是怎么在程序中获得某段代码运行的所耗的时间。知道的清帮帮忙哦。

比如你的排序程序为sort()的话
#include <time.h>
main()
{
long a;
int i;
a = clock();
for (i=0;i<10;i++) //排10次序,因为1次时间太短,无法统计
{
sort();
}
a = a - clock();
printf("%ld\n", a);
return;
}

顺便说点别的..

这个是数据结构的东西
从概念上来讲 冒泡 选择 和 插入的 Big O都是n的平方
但是插入的效率要高于选择,选择的效率要高于冒泡
但是无论如何 这三种算法都是不稳定的
时间复杂度受数据初态的影响很大
所以你不应该用特定的某组数据去测试
应该用多组随机数据.

我也加点别的...
HASH排序最快,时间复杂度O(N),就是空间占的多了一点;
其次是堆排和快排,快排不够稳定,可以用随机化算法优化;
再其次还有希尔排序等.

楼上所说的 冒泡 选择 和 插入 都是最基本的排序算法,复杂度是排序算法中最高的三种.另外,要纠正楼上的错误,冒泡的效率高于选择,因为当一次冒泡操作结束后,如果没有任何交换,排序可以终止.