1. 程式人生 > >演算法導論01--習題(1)

演算法導論01--習題(1)

演算法導論01–習題(1)

1.1-1 給出現實生活中需要排序的一個例子或者現實生活中需要計算凸殼的一個例子

答:排序比較多,比如商場產品單價、銷量、總價的排序、全校學生的成績登入系統需要排序,還有一些需要按一定屬性排序的情況等。凸殼則比較複雜,(給定平面上的n個點,凸殼則是包含這些點的最小的凸多邊形)比如在大海中打撈飛機的話需要根據一些重要的點計算搜尋範圍,需要確定最小搜尋面積的話,需要求出凸殼的頂點集然後才能求出面積。

1.1-2 除速度外,在真實環境中還可能使用哪些其他有關效率的量度。

答:機器的物理效能,演算法的精度,佔用的記憶體大小,健壯性(魯棒性),在一些情況下還可以保持程式執行,可執行性,安全性等,還有自然因素天氣等。

1.1-3 選擇一種你以前已知的資料結構,並討論其優勢和侷限。

答:棧:運算受限的線性表,只允許在表的一端進行插入和刪除操作,優勢:提供後進先出的存取方式,侷限:存取其他項很慢。

1.1-4 前面給出的最短路徑與旅行商問題有哪些相似之處?又有哪些不同?

答: 最短路徑:其情況都固定,相當於求點間的路徑最短選擇;旅行商問題不僅包括路徑的選擇,還包含很多具體的情況,相當於線和點一起選擇,需要的演算法更加複雜。

1.1-5 提供一個現實生活的問題,其中只有最佳解才行。然後提供一個問題,其中近似最佳的一個解也足夠好。

答:這個題說說自己的理解,最佳解就是相對來說最優的解,甚至可以理解為唯一的解,可以使其操作效果最佳,在航空航天領域,諸多裝置需要做工資料極度精確,完全可謂達到失之毫釐,謬以千里的可能,所以類似裝置打造過程中,我想某些工序只有最佳解才行;至於近似最佳,這種情況很多,像很多人在研究的分類、預測演算法等,沒有最佳解(所謂的最佳解可能是過擬合結果),只能說接近最佳解。

上述答案分析有參考的解析,也有自己的理解,如若有誤,歡迎評論留言一起探討!後期會持續更新,堅持看完算導一書。