博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
循环语句的效率
阅读量:6496 次
发布时间:2019-06-24

本文共 601 字,大约阅读时间需要 2 分钟。

在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少CPU 跨切循环层的次数。

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];
}
}

高效率:长循环在最内层

 

 

 

如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。

如果N 非常大,最好采用下面的写法,可以提高效率。

if (condition)

{
for (i=0; i<N; i++)
DoSomething();
}
else
{
for (i=0; i<N; i++)
DoOtherthing();
}

如果N 非常小,两者效率差别并不明显,采用下面的写法比较好,因为程序更加简洁。

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

{
if (condition)
DoSomething();
else
DoOtherthing();
}

转载于:https://www.cnblogs.com/Podevor/archive/2011/06/23/2788103.html

你可能感兴趣的文章
hdu 4452 Running Rabbits 模拟
查看>>
SQL Server 储存过程的output 参数
查看>>
IOS开发中多线程的使用
查看>>
xcode6 dyld_sim is not owned by root
查看>>
Big Event in HDU(杭电1171)(多重背包)和(母函数)两种解法
查看>>
{好文备份}SQL索引一步到位
查看>>
(转)径向模糊效果shader
查看>>
【原创】Kakfa utils源代码分析(三)
查看>>
51单片机实现对24C02进行页写、顺序读取并显示验证
查看>>
java加密解密
查看>>
将日期yyyy-MM-dd转为数字大写的形式
查看>>
全面分析再动手的习惯:链表的反转问题(递归和非递归方式)
查看>>
奇怪吸引子---QiChen
查看>>
ArcEngine中的缩放地图
查看>>
yield学习续:yield return迭代块在Unity3D中的应用——协程
查看>>
手机触屏滑动图片切换插件swiper.js
查看>>
LeetCode - Maximum Depth of Binary Tree
查看>>
把数据库中有关枚举项值的数字字符串转换成文字字符串
查看>>
基于html5海贼王单页视差滚动特效
查看>>
JavaScript变换表格边框颜色
查看>>