課後習題3 1

2021-07-29 03:04:17 字數 939 閱讀 2443

一.

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 新增乙個可選形參,以便能夠儲存 包含的歌曲數。...