| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 629 人关注过本帖
标题:如何求出一段代码运行了多少时间
只看楼主 加入收藏
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
结帖率:85.71%
收藏
已结贴  问题点数:10 回复次数:9 
如何求出一段代码运行了多少时间
比如,我想求用冒泡对一组数字进行排序所用的时间。
以下是代码:
#include <stdio.h>
void sort(int *p,int len);
int main(void)
{     
     int a[10];
     int i;  
     printf("请输入10个不相等的数(以空格键或回车键分隔):\n");
     for(i=0;i<=9;i++)
         scanf("%d",&a[i]);  
     sort(a,10);   
     printf("以下是排好序的结果:\n");
     for(i=0;i<=9;i++)
     {
         printf("%d  ",a[i]);
     }         
     printf("\n");     
    return 0;
}
void sort(int *pArr,int len)//冒泡
{
    int i,j,t;

    for(i=0;i<len-1;i++)
    {
        for(j=0;j<len-1-i;j++)
        {
            if(pArr[j]>pArr[j+1])
            {
                t=pArr[j];
                pArr[j]=pArr[j+1];
                pArr[j+1]=t;
            }
        }
  
    }
}
听别人说用这种形式可以求出时间:
#include <time.h>
 clock_t start,finish;
 start=clock();
 ......
 ......
 finish=clock();
 printf("%.3lf\n",((double)finish-start)/1000);
请问:1这段代码应该如何插入其中?2.求出的时间的单位是什么?
搜索更多相关主题的帖子: include return 如何 
2013-07-29 22:11
唐书豪
Rank: 2
等 级:论坛游民
帖 子:28
专家分:52
注 册:2013-5-10
收藏
得分:2 
又个函数可以调用系统时间,从几几年到这个点的总秒数,具体是哪个我记不清了,调用两次用两个变量接收,然后求差就可以 了,
记起来了。int *p=NULL; time_t time(p); printf("%d\n",time(p));记得用差值,头文件#include<time.h>

2013-07-29 23:24
aa547880610
Rank: 2
等 级:论坛游民
帖 子:8
专家分:14
注 册:2013-7-29
收藏
得分:2 
你求出这个也没啥用不要纠结这个,想求出准确时间我可以告诉你挺难的,这个涉及到进程线程的知识了
2013-07-30 00:44
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:2 
以下是引用艺术的生活在2013-7-29 22:11:03的发言:

听别人说用这种形式可以求出时间:
#include
 clock_t start,finish;
 start=clock();
 ......
 ......
 finish=clock();
 printf("%.3lf\n",((double)finish-start)/1000);
请问:1这段代码应该如何插入其中?2.求出的时间的单位是什么?
想当然  一段用再main起始处   一段用再return之前

时间单位当然是秒了

DO IT YOURSELF !
2013-07-30 08:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:2 
clock_t start = clock();
sort(a,10); // 你要即使的代码段
clock_t finish = clock();
printf( "%.3lf\n", (finish-start+0.0)/CLOCKS_PER_SEC ); // 只是根据你原有代码更正了一下错误,并不表示我赞同使用浮点数相除
2013-07-30 08:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
你要即使的代码段 -> 你要计时的代码段
2013-07-30 08:44
may大象
Rank: 2
等 级:论坛游民
帖 子:55
专家分:38
注 册:2013-5-30
收藏
得分:2 
赞成6楼。。。

                             凡成大事者,各有各的方法论。
2013-07-31 09:40
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:2 
学习

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-07-31 18:15
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:2 
也可以用GetTickCount

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-07-31 18:49
guhemeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:100
专家分:165
注 册:2013-7-27
收藏
得分:2 
  受教各位大神了
2013-07-31 21:34
快速回复:如何求出一段代码运行了多少时间
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022081 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved