演算法導論課後題和思考題 第1章

2021-10-07 01:24:14 字數 1466 閱讀 4183

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

需要排序的乙個例子: 遊戲排行榜

需要計算凸包的乙個例子: 影象處理中的物體檢測,缺陷檢測,影象分類,影象配準都可以用到。附一篇檢索到的綜述,以便後續檢視,如有侵權立刪 (

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

投資回報率,能源利用率

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

單鏈表優勢: 動態分配記憶體;儲存時空間可以不連續;插入刪除相對陣列更為容易; 長度不固定,可擴充套件

劣勢: 結點的插入,刪除,查詢都是o(n) 的複雜度 (根據結點值來)

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

相似之處: 兩者都是在成本限制下盡可能減少行駛距離

不同之處: 最短路徑要求所耗費成本最少(成本為1時即路徑最短); 旅行商問題要求在成本最小的情況下到達的投遞站盡可能的多。

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

最佳解: 對於警察來說,尋找罪犯必須是最優解 

近似解: 現在幾點?

1.2-1 給出在應用層需要演算法內容的應用的乙個例子,並討論涉及的演算法的功能。

動態路由演算法,可以根據網路流量和拓撲結構來選擇路徑,從而更好的額適應網路中的變化,改善網路效能。

1.2-2 假設我們正比較插入排序與歸併排序在相同機器上的實現。對規模為n的輸入,插入排序執行8n^2步,而歸併排序執行64nlgn步。問對哪些n值,插入排序優先於歸併排序?

由於比較的是在相同機器上的速度,所以只要比較步數即可,即求解n處於什麼區間時滿足 8n^2 <64nlgn ,n為自然數。 

1.2-3 n的最小值為何值時,執行時間為100n^2 的乙個演算法在相同機器上快魚執行時間為2^n 的另乙個演算法?

與上一題相同的思路,由於這兩個演算法執行時間都是單調遞增的,所以求n的最小值即求解 100n^2=2^n ,n為自然數。

1-1 (執行時間的比較) 假設求解問題的演算法需要f(n) 毫秒,對下表中的每個函式f(n) 和時間t,確定可以在時間t內求解的問題的最大規模n。

如下表。

演算法導論第21章思考題

給定乙個操作序列,包括insert x 和extract min,運算元x 1,n 4,8,e,3,e,9,2,e,e 將第i次extract min的數儲存在extract i 中 建立乙個優先佇列,給定乙個操作,馬上在優先佇列中做出相應改變即可 演算法解釋 將樣例輸入看成s1,e,s2,e,s3...

演算法導論 思考題 4 3

a.利用主方法可得,t n n的log3 4次方 b.n f n lgn,不能應用主方法 共log3 n 1層,每層代價n lg n 3 的i次方 最後一層共n個 1 的結點,代價為 n t n n lg n 3 的i次方 n n lgn n n log3 2 n o n 又因為t n 最後一層代價...

演算法導論 思考題 8 4

寫一下我的思路,大概是對的,詳細證明不出來。設藍色水壺為a,紅色為b 先取乙個a1,對所有的b做一次比較,可以將b分為兩個部分,一部分大於a1,一部分小於a1 再取乙個a2,將b分為三個部分 再取a3,將b分為四個部分 假設現在b被分成了k個部分,b1,b2,b3.bk,每次取ai,都從b集合的一半...