omegle用不了了:那位高手知道C语言中如何查看程序运行时间

来源:百度文库 编辑:高考问答 时间:2024/05/01 04:53:49
那位高手知道C语言运行之后,如何能够获取程序运行时间?要通过什么方法来获取?

获取程序运行时间:

在<time.h>里有函数clock();本身这个函数取得的时间好像是ms,要取得s就
写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定义的,如果没这个定义
那只能用clock();取得ms;这个函数的执行不会中途停止,如果是在windows系统下,因为它是
多任务系统,它需要在各任务之间切换,如果在测试过程中,执行其他程序,所其得的时间,就会
出现差别,还有windows运行速度相当快,对于小型的测试,所得的时间几乎为0,因此最好将
要测试的过程执行100次或以上,然后再将取得的时间执行次数;输出非常耗时间,没什么必要
的话,就不要输出
这是一个测试选择排序的程序
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define M 1000 /* 执行次数 */
#define N 500 /* 数组大小 */
void SelectSort(int *a,int l,int r) {
int i,j,v;
for (i=0;i<r;i++) {
for (j=i+1;j<=r;j++) {
if (*(a+i)>*(a+j))
v=*(a+i),*(a+i)=*(a+j),*(a+j)=v;
}
}
}

void main() {
int a[N],i,j;
double start,finish; /* 开始时间,结束时间 */

start=(double)clock(); /* 我的time.h内没有CLOCKS_PER_SEC */
for (j=0;j<M;j++) { /* 执行M次 */
for (i=0;i<N;*(a+i++)=rand()%10); /* 每次重新赋值 */
SelectSort(a,0,N-1);
}
finish=(double)clock();
printf("%.4fms",(finish-start)/M);

getchar();
}

你在程序运行之前调用time函数,之后在调用不就行了,程序前要包括头文件#<time.h>

CLOCK()是取的机器的"滴答"数. 不同的CPU不同. 一定会比毫秒精度高.