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