C++循环语句的效率

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

  1. 【建议4-4-1在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。例如示例4-4(b)的效率比示例4-4(a)的高。

for (row=0; row<100; row++)

{

for ( col=0; col<5; col++ )

{

sum = sum + a[row][col];

}

}

for (col=0; col<5; col++ )

{

for (row=0; row<100; row++)

{

sum = sum + a[row][col];

}

}

示例4-4(a) 低效率:长循环在最外层           示例4-4(b) 高效率:长循环在最内层

  1. 【建议4-4-2如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。示例4-4(c)的程序比示例4-4(d)多执行了N-1次逻辑判断。并且由于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。如果N非常大,最好采用示例4-4(d)的写法,可以提高效率。如果N非常小,两者效率差别并不明显,采用示例4-4(c)的写法比较好,因为程序更加简洁。

for (i=0; i<N; i++)

{

if (condition)

DoSomething();

else

DoOtherthing();

}

if (condition)

{

for (i=0; i<N; i++)

DoSomething();

}

else

{

for (i=0; i<N; i++)

DoOtherthing();

}

表4-4(c) 效率低但程序简洁                表4-4(d) 效率高但程序不简洁

C++循环语句的效率相关推荐

  1. 【初级C语言】表达式和基本语句(布尔型与0比较,浮点型与0比较,switch语句,提高循环语句的效率)

    一.运算符的优先级 1.如果代码行中的运算符比较多,要用括号确定表达式的操作顺序.以防止产生歧义并提高可读性. 2.即使掌握了各个运算符的运算规则(顺序,结合性等)仍可能写出一个不能确定唯一计算路径的 ...

  2. matlab循环语句提高效率,matlab – 循环语句性能并预先分配循环语句本身

    这种观察并不重要,因为浪费在循环语句上的时间性能可能远高于循环本身.但无论如何,我会分享它,因为我搜索并找不到关于此的话题.我总是有这样的印象:预先分配我将循环的数组,然后循环它,将比直接循环它更好, ...

  3. matlab循环语句提高效率,matlab循环语句for怎么用

    matlab循环语句for怎么用 matlab循环语句for怎么用? matlab中for语句使用方法和应用实例 for循环语句 1.一般格式为: for x(循环变量) = array(数组) co ...

  4. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  5. 干货 | 收藏!16段代码入门Python循环语句

    (图片付费下载于视觉中国) 作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门> 来源 | 大数据(ID:hzdashuju) [导读]本文将重点讲述 ...

  6. 计算机c语言循环作业,计算机C语言循环语句的应用研究

    [摘要]基于计算机C语言循环语句的应用分析,首先要明确C语言应用现状,然后阐述C语言循环语句的分类及特点,最后详细论述循环语句的应用要点,针对while循环语句.dowhile循环语句.for循环语句 ...

  7. 值得收藏!16段代码入门Python循环语句

    来源:大数据 本文约6000字,建议阅读10分钟. 本文重点讲述for语句和while语句. [ 导读 ]本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除 ...

  8. Java判断语句 循环语句

    主题: 判断语句 循环语句 一.判断语句 1.单分支 1 if(条件){ 2 3 //此处插入代码,表示if中的条件成立执行的语句 4 } 注意: 1.条件 必须 boolean 2.if只带 一行代 ...

  9. python循环语句-详解Python中的循环语句的用法

    一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...

最新文章

  1. 怎么修照片多余的部分_10 个摄影小技巧,让你的照片拿到超多赞!
  2. python考级证书-Python 全国考级二级
  3. 移动游戏高速增长为市场营销带来新的机会
  4. 打印两个有序链表的公共部分
  5. JavaScript的语音识别
  6. 一个C++程序执行main函数前和执行完main函数后会发生什么。
  7. 认证服务器的搭建_这个认证正式发布!
  8. 全局变量的声明和定义 以及dll中全局变量的导出
  9. 【第24章】工控安全需求分析与安全保护工程(软考:信息安全工程师)-- 学习笔记
  10. AppFabric 1.1: installation error 错误代码 1603 windows server 2016 sharepoint 2019 Preparation Tool
  11. 筛选后系列填充_几个“特殊”的Excel筛选技巧
  12. 【工具】NavicatSQLDBXMysql WorkBench
  13. 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
  14. 互联网公司晋升利器,只有学会了这些词,你才能在互联网公司混的风生水起!你还不赶紧背下来!
  15. 基于html化妆品购物商城项目的设计与实现.rar(含源码30个页面左右及毕业设计论文)
  16. dism 分割镜像_DISM对原版镜像进行改造___整合驱动及补丁
  17. 小猫爪:S32K3学习笔记11-S32K3之FCCU
  18. 转载 PCIe学习(二):PCIe DMA关键模块分析之一
  19. 蓝牙加密二【配对和绑定的关系和定义】【IO Capabilities】【sec_params.rsp_key】【BOND MODE】【加密方式】【Encryption Procedur】【计算MIC】
  20. docker安装redis图文教程(详细)

热门文章

  1. 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?
  2. missfresh问题记录
  3. [递推][jzyzojP1252]:递推专练4
  4. KR《C语言》书中的一个Bug
  5. 我的Maven POM配置
  6. 在线HTML转JSX工具
  7. linux之sshpass命令
  8. Hbase常用数据库操作类
  9. ubuntu_soft相关安装
  10. 0005-Windows Kerberos客户端配置并访问CDH