【導(dǎo)讀】一次函數(shù)調(diào)用,遞歸的開銷遠(yuǎn)遠(yuǎn)高于循環(huán)算法。分支是計(jì)算機(jī)語言最基本的操作之一,不幸的是,條件分支打亂了指令執(zhí)行的順序,一旦發(fā)現(xiàn)x<5就不會(huì)再執(zhí)行第二步的判斷,如果語言本身不支持“短路求值”,該原則同樣適用其他場(chǎng)合,例:在一個(gè)存放了10000個(gè)整數(shù)的數(shù)組中尋找負(fù)數(shù),并且僅僅需要知道是否有負(fù)數(shù),根據(jù)短路原理,在找到第一個(gè)負(fù)數(shù)時(shí)即可推出循環(huán)。展開后的循環(huán)雖然增加了代碼的尺寸,但執(zhí)行代碼的開銷更少了。如果你可以在循環(huán)外面計(jì)算某表達(dá)式,而在循環(huán)內(nèi)部只是使用計(jì)算結(jié)果,那么就把它放到循環(huán)外面。