一.
a.最小生成樹演算法
b.揹包問題
二. a.
pow(a,n)的蠻力演算法,t(n)=n
如果用n的二進位制位數表示d表示,t(n)=pow(2,d)
b. 計算 pow(a,n) mod m 的時候,
可以在計算一次乘法的同時就進行一次模的運算。這樣就可以保證不會越界。
三. 習題2.3 4.5.6的演算法 都是屬於滿力演算法。
四. a.計算一次n階多項式的效率。以乘法為關鍵步驟。
t(n)=(n+1)(n+2)/2
b. 改為線性的演算法。
第一種,我們可以增加乙個 陣列,記錄 x的1到n次方所有的結果。這樣可以減少重複的計算。
第二種,化簡多項式
p(x)=(((an*x+an-1)*x+an-2)*x….)x+a0
c. 還沒有想到比線性效果還要好的演算法。
五. 時間效率是 t(n)=n^2
六. a.直線拼板 可以完全覆蓋
b.方形拼板 可以完全覆蓋
c.l形拼板 可以完全覆蓋
d.t形拼板 可以完全覆蓋
e.z型拼板 不可以完全覆蓋
七. a.蠻力演算法:逐個比較。t(n)=n-2
b.t(n)=log3(n)
九. 選擇排序是穩定的
十. 用鍊錶進行選擇排序,可以獲得相同的o(n^2)的效率
十二.
a.顯然,如果比較一遍之後,發現已經沒有元素交換位置。證明了後面的所有元素已經處於有序的狀態了,所以,可以停止迴圈。
b.
bubblesort(a[0...n-1])
c.逆序的時候。
十三.
氣泡排序是穩定的。
十四.
change(2n)
習題3 1至習題3 5
注 題目來自劉汝佳的 演算法競賽入門經典第2版 在vjudge選擇oj平台uva進行提交。必要的時候會寫解題思路,簡單的題純粹就做個記錄。3 1 uva1585 include include includeusing namespace std char s 81 int t int main e...
C Primer 課後習題 3 6
練習 3.43 編寫3個不同版本的程式,令其均能輸出ia的元素。版本1使用範圍 for 語句管理迭代過程 版本 2 和版本 3 都使用普通的 for 語句,其中版本 2 要求下標運算子,版本 3 要求用指標。此外,在所有 3 個版本中都要直接寫出資料型別,而不能使用型別別名 auto 關鍵字或 de...
python課後習題 8 7 8 8
8 7 編寫乙個名為make album 的函式,它建立乙個描述 的字典。這個函式應接受歌手的名字和 名,並返回乙個包含這兩項資訊的字典。使用這個函式建立三個表示不同 的典,並列印每個返回的值,以核實字典正確地儲存了 的資訊。給函式make album 新增乙個可選形參,以便能夠儲存 包含的歌曲數。...