如何提高循环效率
for循環(huán)的變種:某些編程環(huán)境下,為了增強(qiáng)for循環(huán)的靈活性,使用逗號(hào)運(yùn)算符來允許更多的變量來控制循環(huán)。
例:for(x=0,y=0;x+y<10;x++,y++)等。逗號(hào)運(yùn)算符是從左向右運(yùn)算的,返回的是最后一個(gè)表達(dá)式的值。
do{}while()循環(huán),循環(huán)體至少被執(zhí)行一次。
怎樣提高循環(huán)的效率:
1、在多重循環(huán)中,如果有可能,將循環(huán)次數(shù)最多的循環(huán)放在最里層,循環(huán)次數(shù)少的放在最外層,這樣能夠減少CPU跨切循環(huán)層的次數(shù)。
例如:
for(int?x=0;x<5;x++){for(int?y=0;y<10;y++){sum+=x+y;}} 與for(int?y=0;y<10;y++){for(int?x=0;x<5;x++){sum+=x+y;}}第一種方式循環(huán)效率要高。
2、如果循環(huán)體內(nèi)存在邏輯判斷,并且循環(huán)次數(shù)很大時(shí),宜將邏輯判斷移到循環(huán)體外面。
(a) for?(i?=?0?;?i<N;?i++) {if?(condition)DoSomething();elseDoOtherthing(); }代碼比較簡(jiǎn)潔,但如果N比較大,這樣會(huì)打斷循環(huán)的流水線作業(yè),使得循環(huán)速率降低。
(b) if?(condition) {for?(i?=?0?;?i<N;?i++)DoSomething(); } else {for?(i?=?0?;?i<N;?i++)DoOtherthing(); }循環(huán)效率高,但代碼不夠簡(jiǎn)潔。
轉(zhuǎn)載于:https://blog.51cto.com/11142019/1754117
總結(jié)
- 上一篇: phpcms v9中模板标签和联动菜单的
- 下一篇: bzoj 4446: [Scoi2015