问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-24 08:56

我来回答

4个回答

热心网友 时间:2022-05-04 16:12

获取程序运行时间:
在<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();
}

热心网友 时间:2022-05-04 19:04

获取程序运行时间:

在<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();
}

热心网友 时间:2022-05-04 20:56

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

热心网友 时间:2022-05-04 23:04

CLOCK()是取的机器的"滴答"数. 不同的CPU不同. 一定会比毫秒精度高.
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
索尼NEX-6单头套机(E 16-50mm)主要参数 索尼NEX-6单头套机(E 18-200mm LE)主要参数 索尼NEX-6单头套机(E 18-200mm LE)基本参数 索尼NEX-6单头套机(16-80mm)基本参数 追加诉前财产保全的条件是什么 电脑开机硬盘灯循环亮灭电脑开机后硬盘灯一下亮一下灭是怎么回事_百度... ...不能开机了?显示器亮橘色的灯,风扇能转,就是主机上的灯不亮... ...重起时电源灯是常亮, 风扇是转的,但硬盘灯不亮, 屏幕无显示_百度知 ... 硬盘灯常亮电脑无法正常运行电脑开机后硬盘指示灯常亮不闪是什么原因... 电脑硬盘不亮电脑硬盘指示灯不亮 中间竹难的成语 什么竹难什么成语 怎样知道自己是A罩杯还是B罩杯,C罩杯... 如何知道c语言中的算术表达式是合法的? 怎么做粉皮好吃又简单 怎样知道C语言运行一个程序用了多长时间 请教榆林美食拼三鲜的历史渊源要尽量真实的 拼三鲜里的夹肉怎么做 榆林拼三鲜怎么做 鲜粉皮怎么做好吃,鲜粉皮的吃法 拼三鲜需要什么材料 榆林拼三鲜怎么做? 拼三鲜里粉皮的做法 led灯线怎么接 led灯的5大优点分析 轻微脑震荡留下的后遗症吃什么药好 脑震荡后遗症如何治疗 脑震荡后遗症头晕一般会持续多久 脑震荡可以治好吗?会不会有后遗症? 脑震荡后遗症的治疗 脑震荡要怎么治疗? 疯狂猜成语中有竹,难的成语答案是什么 罄竹难书是什么意思? 竹难书是什么意思 怎样判断有机物中C原子共线还是共面? “罊竹难书”的意思 什么竹难书成语 謦竹难书是什么意思? 罄竹难书的意思是什么? 罄竹难书什么意思? 馨竹难书,什么意思 酒店住一晚是从第一天的几点到第二天的几点? 为什么电脑重启桌面图标就会打乱? 酒店一般几点退房? 我电脑桌面的图标老是自动排列,怎么才可以不变动位置 电脑桌面图标为什么会自动排序? 电脑桌面上的图标变化了位子怎么办 电脑之前好好的,刷新一次后桌面图标顺序都变了,以前是自动排列的,为什么?是不是中毒了? 为什么我打开电脑之后桌面图标的位置排列的顺序改变了 电脑桌面的图标排列顺序变了 怎么样变回原来那样 为什么云闪付查不到助学贷款还款