谁能帮我用C语言写一个测试选择排序性能(函数的运行时间)的程序,不胜感激!

要是给我讲一讲计时函数怎么用也行哈

如下定义clock_t变量start 和end start=clock();开始计时end=clock();结束计时,
printf("\ntime is %5.2f",difftime(end,start));输出。 注意头文件。
由于计算很快,数组维数太小 运行时间一般为0,取维数大一点才能计算出时间
不同机器上时间一般不同。
#include<time.h>
#include<conio.h>
#include<dos.h>
#include<stdio.h>
main()
{clock_t start,end; //计算时间
int a[10000];
int temp,min;
for(int i=0;i<10000;i++) //数组赋值
a[i]=10000-i;
start=clock(); //开始
for(i=0;i<10000;i++) //排序
{ for(int j=i+1;j<10000;j++)
{if(a[i]>=a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}
}
end=clock();//结束计时
for(int m=0;m<10000;m++)//输出
printf(" %d",a[m]);
printf("\ntime is %5.2f",difftime(end,start));//输出时间
getch();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-10
这不是用程序算出来的 时间复杂度是看代码的循环次数最高项 你应该看看数据结构时间空间复杂度
那说明了
第2个回答  2012-04-08
linux下的话
头文件:
#include<stdio.h>
#include<sys/time.h>
#include<unistd.h>
#include<time.h>
主函数:
int main(){
long t;
struct timeval tv;
struct timezone tz;
gettimeofday(&tv,&tz);
t=tv.tv_usec;
xxxx(......);//本行为你要测试的函数,调用该函数
gettimeofday(&tv,&tz);
t=tv.tv_usec-t; //t为你要的函数调用的时间(微秒),你可以用printf输出。
return 0;
}