for循环效率问题

下面哪种写法循环语句的效率最高?
这里写图片描述

答:C++/C循环语句中,for语句使用频率最高,while语句其次,do很少使用。在多重循环中,如果可能,要尽量将最长的循环放在最内层,最短的循环放在最外层,以减少CPU跨切循环层的次数。例如(b)的效率比(a)高

扩展:了解CPU指令流水线和指令、数据的Cache命中的概念吗?如果你的“跳读”(eg:二维数组中的读取)会跨越cache交换块,甚至page边界的话,就会造成CPU数据cache重新批量装载数据,甚至从虚拟内存中恢复磁盘数据,这当然严重影响效率

这个“跨循环层”的概念本身是说,由外层循环进入内层循环是要重新初始循环计数器,包括保存在外层循环的计数器和加载内层循环的计数器,退出内层的时候再恢复外层循环计数器。把长循环放在里面可以显著减少这些操作的数量。

另一方面还要注意数据结构本身的效率...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值