演算法導論01 習題(1)

2021-08-30 02:23:40 字數 812 閱讀 7776

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

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

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

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

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

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

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

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

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

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

演算法導論 習題 5 4 1

題 乙個房間裡必須要有多少人,才能讓某人和你生日相同的概率至少為1 2?必須要有多少人,才能讓至少兩個人生日為7月4日的概率大於1 2?解 1.假設一年有n 365 天,房間裡面有x人 不算自己 為求某人與自己生日相同,可求其反面,即房間裡面沒人跟自己生日相同,他們每個人生日可以在n天中選擇除去我生...

演算法導論 習題 6 5 8

題 請給出乙個時間為o nlgk 用來將k個已排序鍊錶合併為乙個排序鍊錶的演算法。此處n為所有輸入鍊錶中元素的總數。k個已排序鍊錶,假設每乙個鍊錶的第乙個元素為root i i 1,2,3.k 那麼可以為這k個元素root i 構造乙個最小堆heap min,其時間複雜度為o lgk 此時堆頂元素假...

演算法導論 習題5 2 2

首先我們有三個觀察結論 1 1號助理總是會被雇用 2 最佳助理 即rank為n的助理 總是會被雇用 3 最佳助理不可能是1號助理,因為那樣將只能剛好雇用一次。在使hire assistant剛好雇用兩次的序列中,一號助理必然有rank i n 1,所有rank在 i 1.n 1 區間內的助理必然在r...