码迷,mamicode.com
首页 > 编程语言 > 详细

【C/C++】循环语句的效率

时间:2019-11-02 16:11:17      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:++   写法   多重循环   提高效率   流水线   处理   else   存在   建议   

  C/C++循环语句中,for语句使用频率最高,while语句其次,do语句很少用。本节重点讨论循环体的效率。提高循环体效率的基本办法是降低循环体的复杂性

  • 【建议4-4-1】在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU夸切循环层的次数。
//低效率:长循环在最外层
for (row = 0; row < 100; ++row)
{
    for (col = 0; col < 5; ++col)
    {
        sum += a[row][col];
    }
}

//高效率:长循环在最内层
for (col = 0; col < 5; ++col)
{
    
    for (row = 0; row < 100; ++row)
    {
        sum += a[row][col];
    }
}
  • 【建议4-4-2】如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。由于多次要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。
//如果N非常小,两者效率差别并不明显,但是采用这种写法看上去非常简洁
for (i = 0; i < N; ++i)
{
    if (condition)
        DoSomething();
    else
        DoOtherthing();
}

//如果N非常大,采用这种写法可以提高效率
if (condition)
{
    for (i = 0; i < N; ++i)
        DoSomething();
}
else
{
    for (i = 0; i < N; ++i)
        DoOtherthing();
}

【C/C++】循环语句的效率

标签:++   写法   多重循环   提高效率   流水线   处理   else   存在   建议   

原文地址:https://www.cnblogs.com/bootblack/p/11782404.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!