復(fù)寫傳播
復(fù)寫傳播在我看來就是將同樣的一個(gè)某些運(yùn)算的結(jié)果賦值給不同的變量
栗子:a=b+c
d=b+c
e=b+c
如果在不得不多次引用結(jié)果的條件下那么可以直接將結(jié)果賦值給需要的變量將上述代碼優(yōu)化為:
a=b+c;
d=a;
e=a;
以此來減少程序在運(yùn)行時(shí)需要做的計(jì)算量
代碼外提
減少循環(huán)中代碼總數(shù)的一個(gè)重要辦法是循環(huán)中不變的代碼段外提。這種變換把循環(huán)不變運(yùn)算,即結(jié)果獨(dú)立于循環(huán)執(zhí)行次數(shù)的表達(dá)式,提到循環(huán)的前面,使之只在循環(huán)外計(jì)算一次。
刪除死代碼
這個(gè)見名知意,就是隨手刪除掉木有用的代碼.
強(qiáng)度削弱
就是將強(qiáng)度大的運(yùn)算換算成強(qiáng)度小的運(yùn)算,比如將乘法換為加法等
歸納變量刪除
在循環(huán)中當(dāng)兩個(gè)變量的值是步伐一致的變化時(shí),可能只需要留下一個(gè)
在循環(huán)中盡量減少重復(fù)的運(yùn)算,將可以外提的運(yùn)算優(yōu)先計(jì)算出結(jié)果之后再賦值到循環(huán)中如循環(huán)遍歷一個(gè)長度為10的數(shù)組時(shí),可先將長度計(jì)算出來再進(jìn)行循環(huán)
public class Test{
public static void main(String [] args){
int [ ] i = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 };
int length = i.length; //將數(shù)組長度放置再循環(huán)外,這樣就不用在每一次循環(huán)時(shí)都計(jì)算一邊長度.
for ( int j = 0 ; j < length ; j++){
System.out.println( i [ j ] );
}
}
}
浙公網(wǎng)安備 33010602011771號(hào)