分类: C/C++
2009-07-08 00:02:03
循环语句的效率
C++/C 循环语句中,for 语句使用频率最高,while 语句其次,do 语句很少用。本
节重点论述循环体的效率。提高循环体效率的基本办法是降低循环体的复杂性。
【建议
循环放在最外层,以减少CPU 跨切循环层的次数。例如示例4-4(b)的效率比示例
4-4(a)的高。
{
for ( col=0; col<5; col++ )
{
sum = sum + a[row][col];
}
}
{
for (row=0; row<100; row++)
{
sum = sum + a[row][col];
}
}
【建议
循环体的外面。示例4-4(c)的程序比示例4-4(d)多执行了N-1 次逻辑判断。并且
由于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环
进行优化处理,降低了效率。如果N 非常大,最好采用示例4-4(d)的写法,可以提
高效率。如果N 非常小,两者效率差别并不明显,采用示例4-4(c)的写法比较好,
因为程序更加简洁。
for (i=0; i
if (condition)
DoSomething();
else
DoOtherthing();
}
表4-4(c) 效率低但程序简洁
if (condition)
{
for (i=0; i
}
else
{
for (i=0; i
}
表4-4(d) 效率高但程序不简洁