演算法導論 2 2分析演算法練習題 python描述

2021-08-21 02:23:30 字數 1305 閱讀 7355

# 2.2分析演算法練習題 python描述

# 2.2-1

# θ(n^3)

# 2.2-2

a = [99

, 38

, 65

, 97

, 76

, 13

, 27

, 49]

# 排序過程

# a = [13, 38, 65, 97, 76, 99, 27, 49]

# a = [13, 27, 65, 97, 76, 99, 38, 49]

# a = [13, 27, 38, 97, 76, 99, 65, 49]

# a = [13, 27, 38, 49, 76, 99, 65, 97]

# a = [13, 27, 38, 49, 65, 99, 76, 97]

# a = [13, 27, 38, 49, 65, 76, 99, 97]

# a = [13, 27, 38, 49, 65, 76, 97, 99]

def

selectsort(a):

length = len(a)

for i in

range(0

, length - 1):

min = i

for j in

range(i + 1

, length):

if a[j] < a[min]:

min = j

temp = a[min]

a[min] = a[i]

a[i] = temp

selectsort(a)

print(a)

# θ(n^2)

#2.2-3

# 假設每個條目都有概率p為元素所尋找的。 然後,如果前面的k-1個位置不是被查詢的元素,那麼我們將只檢查k個元素,

# 而第k個位置是所需的值。 考慮到這種分布的預期值,我們可以得到它

#2.2-4

# 對於乙個好的最佳執行時間,修改演算法首先隨機產生輸出,然後檢查它是否滿足演算法的目標。 如果是這樣,產生這個輸出並停止。

# 否則,照常執行演算法。 這不太可能會成功,但在最好的情況下,執行時間只會與檢查解決方案一樣長。

# 例如,我們可以修改選擇排序,首先隨機排列a的元素,然後檢查它們是否按排序順序排列。 如果是,輸出a.否則按照慣例執行選擇排序。

# 在最好的情況下,這個修改的演算法將具有執行時間θ(n)。

演算法導論 練習題 3 2 4

首先證明f n 多項式有界的充分必要條件是lgf n o lgn 1 若存在常數c和n0,當n n0時,f n 則lg f n 根據上式容易證明,lg f n o lgn 2 若lg fn o lgn 則存在常數c和n0,當n n0,lg f n 所以f n 根據上面證明出來的公式,來證明兩個小題。...

演算法導論 練習題 7 4 5

快速排序遞迴樹到每個葉子為k個元素就結束了,所以高度h lg n k 每層代價cn,所以快速排序時間上限o nlgn 快速排序結束後,陣列變成 k個元素,a1,k個元素,a2.的形式 即每k個元素之後,都有乙個已經在正確位置上的元素,這些元素為a1,a2,其中ai之前的k個元素小於ai,ai之後的k...

演算法導論 練習2 2

2.2 1 只看最高次項,並忽略係數,時間複雜度為 n 3 2.2 2 def swap a,b return b,a defselect sort a n len a for i in range n 1 minindex i for j in range i 1 n if a j mininde...