什么是算法
- 算法就是把輸入轉(zhuǎn)換成輸出的計(jì)算步驟的一個(gè)序列专执。
- 算法必須精確描述所要遵循的計(jì)算過程。
算法是很有用的技術(shù)
必要性:
- 計(jì)算時(shí)間和存儲(chǔ)空間是有限的資源令宿,在時(shí)間和空間方面有效的算法幫助使用這些資源
- 在較大問題規(guī)模時(shí),算法之間效率的差別特別顯著
習(xí)題(選做。答案是自己的觀點(diǎn)鳞上,歡迎批評(píng)指正)
1.1-3 選擇一種你以前已知的數(shù)據(jù)結(jié)構(gòu),并討論其優(yōu)勢和局限吊档。
鏈表篙议。
優(yōu)勢:內(nèi)存地址不連續(xù),通過指針指向下一元素內(nèi)存地址怠硼,當(dāng)需要?jiǎng)h除或增加元素時(shí)鬼贱,只需要改變一個(gè)指針的指向即可,其它元素不受影響香璃。
局限:對(duì)于元素的查找这难,需要從鏈表頭部遍歷,一直到找到目標(biāo)元素為止葡秒,時(shí)間復(fù)雜度高于數(shù)組姻乓。
1.1-5 提供一個(gè)現(xiàn)實(shí)生活的問題,其中只有最佳解才行同云。然后提供一個(gè)問題糖权,其中近似最佳的一個(gè)解也足夠好。
想起初中數(shù)學(xué)中“兩點(diǎn)之間炸站,線段最短”的一個(gè)運(yùn)用在生活中的問題星澳。在一條河同一側(cè)的兩個(gè)村莊,欲在河上修建一座水電站旱易,問建在哪里離兩個(gè)村莊的距離之和最短禁偎。答案只有一個(gè)腿堤,那就是村莊A,和村莊B在河對(duì)岸等距離的位置如暖,這兩點(diǎn)直線與河的交匯處這個(gè)點(diǎn)符合要求笆檀。(感覺這個(gè)回答有點(diǎn)牽強(qiáng),因?yàn)檫@個(gè)問題把實(shí)際生活理想化了盒至,現(xiàn)實(shí)生活中并不存在必須把水電站修在確定的某個(gè)點(diǎn)上的問題)
電商企業(yè)倉庫選址酗洒。以京東自營為例,京東基于大數(shù)據(jù)的用戶畫像枷遂,可以知道哪些地區(qū)消費(fèi)哪些商品比較多樱衷,根據(jù)數(shù)據(jù)來選擇倉庫中心的位置,從而確保較快的送貨速度酒唉,這種問題應(yīng)該是只能逼近最佳解卻無法準(zhǔn)確求得最佳解矩桂。