C++循环语句的效率
C++循环语句的效率
C++/C循环语句中,for语句使用频率最高,while语句其次,do语句很少用。本节重点论述循环体的效率。提高循环体效率的基本办法是降低循环体的复杂性。
- 【建议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) 高效率:长循环在最内层
- 【建议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++循环语句的效率相关推荐
- 【初级C语言】表达式和基本语句(布尔型与0比较,浮点型与0比较,switch语句,提高循环语句的效率)
一.运算符的优先级 1.如果代码行中的运算符比较多,要用括号确定表达式的操作顺序.以防止产生歧义并提高可读性. 2.即使掌握了各个运算符的运算规则(顺序,结合性等)仍可能写出一个不能确定唯一计算路径的 ...
- matlab循环语句提高效率,matlab – 循环语句性能并预先分配循环语句本身
这种观察并不重要,因为浪费在循环语句上的时间性能可能远高于循环本身.但无论如何,我会分享它,因为我搜索并找不到关于此的话题.我总是有这样的印象:预先分配我将循环的数组,然后循环它,将比直接循环它更好, ...
- matlab循环语句提高效率,matlab循环语句for怎么用
matlab循环语句for怎么用 matlab循环语句for怎么用? matlab中for语句使用方法和应用实例 for循环语句 1.一般格式为: for x(循环变量) = array(数组) co ...
- 单片机c语言中的循环语句,单片机c语言教程:C51循环语句
循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...
- 干货 | 收藏!16段代码入门Python循环语句
(图片付费下载于视觉中国) 作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门> 来源 | 大数据(ID:hzdashuju) [导读]本文将重点讲述 ...
- 计算机c语言循环作业,计算机C语言循环语句的应用研究
[摘要]基于计算机C语言循环语句的应用分析,首先要明确C语言应用现状,然后阐述C语言循环语句的分类及特点,最后详细论述循环语句的应用要点,针对while循环语句.dowhile循环语句.for循环语句 ...
- 值得收藏!16段代码入门Python循环语句
来源:大数据 本文约6000字,建议阅读10分钟. 本文重点讲述for语句和while语句. [ 导读 ]本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除 ...
- Java判断语句 循环语句
主题: 判断语句 循环语句 一.判断语句 1.单分支 1 if(条件){ 2 3 //此处插入代码,表示if中的条件成立执行的语句 4 } 注意: 1.条件 必须 boolean 2.if只带 一行代 ...
- python循环语句-详解Python中的循环语句的用法
一.简介 Python的条件和循环语句,决定了程序的控制流程,体现结构的多样性.须重要理解,if.while.for以及与它们相搭配的 else. elif.break.continue和pass语句 ...
最新文章
- 怎么修照片多余的部分_10 个摄影小技巧,让你的照片拿到超多赞!
- python考级证书-Python 全国考级二级
- 移动游戏高速增长为市场营销带来新的机会
- 打印两个有序链表的公共部分
- JavaScript的语音识别
- 一个C++程序执行main函数前和执行完main函数后会发生什么。
- 认证服务器的搭建_这个认证正式发布!
- 全局变量的声明和定义 以及dll中全局变量的导出
- 【第24章】工控安全需求分析与安全保护工程(软考:信息安全工程师)-- 学习笔记
- AppFabric 1.1: installation error 错误代码 1603 windows server 2016 sharepoint 2019 Preparation Tool
- 筛选后系列填充_几个“特殊”的Excel筛选技巧
- 【工具】NavicatSQLDBXMysql WorkBench
- 2021/1/16-每日三题第23弹:skr小机灵鬼儿 ?你知道 JavaScript 中的原型和原型链是什么吗 ???
- 互联网公司晋升利器,只有学会了这些词,你才能在互联网公司混的风生水起!你还不赶紧背下来!
- 基于html化妆品购物商城项目的设计与实现.rar(含源码30个页面左右及毕业设计论文)
- dism 分割镜像_DISM对原版镜像进行改造___整合驱动及补丁
- 小猫爪:S32K3学习笔记11-S32K3之FCCU
- 转载 PCIe学习(二):PCIe DMA关键模块分析之一
- 蓝牙加密二【配对和绑定的关系和定义】【IO Capabilities】【sec_params.rsp_key】【BOND MODE】【加密方式】【Encryption Procedur】【计算MIC】
- docker安装redis图文教程(详细)