W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)你編寫一個(gè)針對一類問題的通用解法,而非針對某一個(gè)問題的特定解法時(shí),你就寫出了一個(gè)算法。我在第一章提到過這個(gè)詞,但是沒有給出詳細(xì)定義。這也不太好定義,所以我會(huì)試用多種方式進(jìn)行定義。
首先,考慮一些不是算法的問題。當(dāng)你學(xué)習(xí)個(gè)位數(shù)乘法時(shí),你可能會(huì)背乘法表。實(shí)際上你記住的是100個(gè)特定解法,這種知識并不是真正意義的算法。
但是,如果你很“懶”,你可能學(xué)習(xí)一些作弊技巧。比如,求n與9的乘積,你可以在第一位上寫n-1,第二位上寫10-n。這一技巧是9與任意個(gè)位數(shù)相乘的通用解法。這就是一個(gè)算法了!
類似地,你學(xué)過的進(jìn)位加法、借位減法、長除法等等這些技術(shù)都是算法。算法的特點(diǎn)之一是執(zhí)行時(shí)無需任何智能性。算法是機(jī)械過程,按照一組簡單的規(guī)則,一步接一步的執(zhí)行。
我認(rèn)為,人們花那么多時(shí)間在學(xué)校學(xué)習(xí)死板的執(zhí)行算法,無需任何智慧,這實(shí)在令人尷尬。
另一方面,算法的設(shè)計(jì)過程是有趣的,挑戰(zhàn)智慧,這才是所謂的編程的核心部分。
一些人們在自然而然狀態(tài)下做的事情,沒有任何難度或下意識地思考,但這才是最難用算法表達(dá)的事情。自然語言理解就是很好的例子。我們都在做這件事,但迄今為止沒人能解釋該怎么做,至少不能以算法的形式給出解釋。
稍后在本書中我將有機(jī)會(huì)針對許多問題設(shè)計(jì)簡單的算法。如果你選修了計(jì)算機(jī)科學(xué)專業(yè)的下一門課數(shù)據(jù)結(jié)構(gòu),你將看到計(jì)算機(jī)科學(xué)所帶來的一些最有趣、最聰明、最有用的算法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: