for循环一次的时间

来自:    更新日期:早些时候
在C/C++中,一般for循环中执行一次需要多少时间?~

对于确定机器周期为12M晶振的计算机可以用这种方法进行估算,但不能推广到其他机器周期的计算机。

而且for循环的运行时间还需要看你的for循环中包含的语句数。一般来说,12M晶振的计算机每执行一个基本语句所花的时间大致是10^(-8)s,也就是1亿次执行约需1秒的时间。
所以对于12M晶振的计算机,一次for循环执行的时间约等于:(循环包含语句执行时间单位+8)除以1亿(秒)。

for循环是非常灵活的,其时间复杂度并不一定是n+1。for循环语句的标准格式为:
for(表达式1;表达式2;表达式3)
{
循环体;
}
其执行顺序为
表达式1;
while(表达式2)
{
循环体;
表达式3;
}

通常我们熟悉的用法如:
for(i=0;i<n;i++)
{
循环体;
}
从i=0开始判断执行循环,到i=n-1都满足循环条件,共执行n次循环体语句,时间复杂度为n;
若改为 i<=n,则执行到 i=n 共执行n+1次循环体语句,时间复杂度为n+1;
如果写成
for(i=0;i<n*n;i++)
{
循环体;
}
时间复杂度就变成n的平方了,也就是n*n;
另外for(表达式1;表达式2;表达式3)里面的表达式1,2,3 可以是空语句,也可以是互不相关的三条语句,用起来都是很灵活的。具体我认为可以参考谭浩强写的《C程序设计》关于循环语句部分的讲解,说的比较详细透彻。

,最大也就是几百,那循环的速度很快的,几百分之秒。
如果非要计算你这个循环的运行时间,那也是可以计算的,只不过对于不同的计算机的运行速度不一样,要看你CPU的主频。如果你是用家用计算机的话,我估计应该是2.6GHZ到2.8GHZ,用你的主频数,用你输入的参数x,得到的就是理想答案。你就用6M除以x就得到 了。

12M的晶振的机器周期是1/12M*12,就是1us

其次不同的单片机执行语句的机器周期也不一定一样(比如:Atmel 51系列及大多数51的一个机器周期是12个时钟周期,华邦的只需要4个时钟周期)。不过大体来说,一条for循环大概8个机器周期,在12M晶振下,通常用以下代码实现1ms的延时:

void delayms(unsigned int ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
大概算一下,120*8*1us=1ms,如果需要精确的定时,还是得用定时器。

如果是for (i=0;i<10000;i++);的话,
那么
大概算一下,10000*8*1us=80ms

搂主这样求时间是不准确的。
首先,执行一次的时间并不是执行1000此的时间除以1000

可以这样求
#include<windows.h>
#include<iostream>
using namespace std;

int main()
{
int time = GetTickCount();

for(long i;i < 1000000;i++);

time = GetTickCount() - time;
cout<<time<<endl;
}

用多重循环算平均时间:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void main()
{
long int i,j,m;
time_t now = time (NULL);

printf("%s ",ctime(&now));
for(j=1;j<=1000;j++)
for(m=1;m<=1000;m++)
for(i=1;i<=1000;i++) {};
now = time (NULL);
printf("%s ",ctime(&now));
}

跑了1000*1000*1000次,用了3秒
每人的计算机速度不一样的

不一定,也有说0.25us


for循环一次的时间视频

相关评论:
  • 17872771491C语言的for循环中执行一次需多少机器周期?
    邢狮沾机器循环,当然只是在单片机中,不同的单片机使用不同的编译软件,最终都转换成汇编,把机器代码烧录成单片机。不同的编译软件可以用不同的方式编译语句。以keil为例。(我= 0;我< 1;N + +我+ +);(I, n是char或unsigned char)赋值语句(I=0)有两个机械循环,一个判断语句(I <1) 4个机械...

  • 17872771491for循环延时时间计在哪里看
    邢狮沾计算for语句时间的方式主要是在for前调用一次获取时间,然后在for结束调用一次时间获取函数。计算for语句的时间可以用clock clock_t start,end;start = clock();for(int i=0;i < max; i++){ } end = clock();(end - start)\/CLOCK_PER_SEC就是for语句的执行时间 注意clock统计的是CPU执行时间...

  • 17872771491for循环哪些情况执行一次
    邢狮沾A:循环9次;B:循环10次;C:循环9次;D:循环10次。A for(i=1;i<10:i++):A:循环9次;B i=10;while(i>0){--i;}B:循环10次;C i=1;do{i++;}while(I<=10);C:循环9次;D i=1;m:if(i<=10){i++;goto m;}D:循环10次;...

  • 17872771491PHP中for循环每次循环时间一致吗
    邢狮沾now()这个函数本身是精确到秒的 ,for循环插入数据不太多 理论上比较快,会在100毫秒之内完成,所以你看到的时间基本一样,如果说精确到微秒或者你For循环的次数特别特别多 ,你就能看到时间不一样了

  • 17872771491如何在R的for循环中加入时间间隔,比如循环执行一次后,间隔1分钟再执行...
    邢狮沾sys.sleep(60)括号里面的参数单位为秒

  • 17872771491小弟对单片机For循环如何设定时间不懂,急求大侠帮忙啊
    邢狮沾for(i=0;i<226;i++)for(j=0;j<255;j++);注意第二个for语句后面有;号,拿你的这两条语句来说,第二个for里包涵三个语句j=0;j<255;和j++;首先读出j=0,然后看j的范围,最后自加一次,然后j=1,这样一直循环重复255次,这个你应该能理解吧,执行了255次后,执行一次第一个for语句。...

  • 17872771491for循环体语句只能执行一次?
    邢狮沾在c语言中 for(i=0;i<2,i++){ 循环体语句;} 这样的循环体会执行2次(分别是i=0和i=1时的情况)它的执行流程是这样的:首先给变量i赋初值0,然后判断,若满足条件i<2(是),就执行循环体的语句,完成后再i++,即 i = i + 1;i 变成1,然后再次判断是否满足条件i<2(仍是),就再...

  • 17872771491C语言问题 如果有许多层for循环,但是每步循环都没有执行程序,那么运行...
    邢狮沾是的,运行时间会很长。因为程序是按执行多少次来计算计算量的,你每一次for其实都算在里面了,不管里面有没有程序实体(里面的实体的次数越多也代表执行的次数越多,但是都是一个量级别的)。

  • 17872771491for循环时间复杂度计算?
    邢狮沾>=√n+1时,内循环执行0次。所以,内循环共执行√n(n+1)-(√n(√n+1)(2√n+1))\/6次(这里用到了一个公式:1^2+2^2+3^2+...+n^2=(n(n+1)(2n+1))\/6)。√n(n+1)-(√n(√n+1)(2√n+1))\/6化简后是:(4n√n+5√n-3n)\/6。所以,精确的时间复杂度是O((4n...

  • 17872771491单片机编程中for( ;t;t--)是什么意思?
    邢狮沾for 为循环控制语句 格式为 for (表达式1;表达式2;表达式3){ 语句 } 一般的是 for (t=100;t>0;t--)\/\/循环一小段时间。或是t=100,t>0,循环执行100次,当t=0时,退出该循环。

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网