題目的回答會整理並在gayhub更新
期待在評論區討論問題
1.2-3
原題:
n的最小值爲何值時,運行時間爲100n2的一個算法在相同機器上快於運行時間爲2n的另一個算法?
回答:
藍色的是100n2,綠色的是2n。
第一張是定義域[0,2]的圖像。第二張是定義域[0,50]的圖像,爲了展示效果比例有點扭曲。
從第一張圖可以看到,大概n<=0.1(實際大點)的時候,藍線更優。從第二張圖可以看到,大概n>=15(實際更大一點點)時候,同樣藍線更優
所以如果n取整而不爲零,那麼答案就是n=15。
思考題1
1-1
(運行時間的比較) 假設求解問題的算法需要f(n)毫秒, 對下表中的每個函數f(n)和時間t,確定可以在時間t內求解的問題的最大規模n。
1秒鐘 | 1分鐘 | 1小時 | 1天 | 1月(30天) | 1年(365.24天) | 1世紀 | |
---|---|---|---|---|---|---|---|
log2n | 1x10301 | ||||||
n0.5 | 1x106 | 3.6x109 | 12.96x1012 | 7.46x1015 | 6.74x1018 | 9.95x1020 | 9.95x1024 |
n | 1x103 | 6x104 | 3.6x106 | 8.64x107 | 2.6x109 | 3.16x1010 | 3.16x1012 |
nlog2n | 140 | 4895 | 2.04x103 | 3.94x104 | 9.77x105 | 1.05x107 | 8.68x1010 |
n2 | 31.6 | 244.9 | 1897 | 9295 | 5x104 | 1.78x105 | 1.78x106 |
n3 | 10 | 39.1 | 153.3 | 442.1 | 1373 | 3160 | 1.474 |
2n | 9 | 15 | 21 | 26 | 31 | 34 | 41 |
n! | 6 | 8 | 9 | 11 | 12 | 13 | 15 |