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