算法導論第三版第一章習題答案



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

 

Other than speed, what other measures of efficiency might one use in a real-world setting?
空間,硬件資源等。

 

 

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

 

How are the shortest-path and traveling-salesman problems given above similar? How are
they different?
相似點:找出最短路徑
不同點:shortest-path 不一定經過所有點,而 traveling-salesman 得經過所有點



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

 

Suppose we are comparing implementations of insertion sort and merge sort on the same
machine. For inputs of size n, insertion sort runs in 8n2 steps, while merge sort runs in 64n
lg n steps. For which values of n does insertion sort beat merge sort?

插入排序的性能優於合並排序也就是:插入排序所用的步數少:

所以有:8n2 ≤ 64nlgn    ⇒      n < 8lgn 需要解一下這個超越方程,
編個程序很容易得到: 2 ≤ n ≤ 43

下面是我用Go語言編寫的程序:

 
 
 
                 for n:=2;n<50;n++{
            if float64(n)<8*math.Log2(float64(n)){
                fmt.Println(n)
            }else{
                break
            }
 
        }

 

 

1.2-3 n的最小值為何值時,運行時間為100n2的一個算法在相同機器上快於運行時間為2n的另一個算法?

原理同上題,可列出如下不等式:100n2 ≤ 2n 解這個不等式(代數法),可求出最小的整數 n=15

下面是我用Go語言編寫的程序:

 
 
 
             for n:=1;n<50;n++{
        fmt.Println(n)
        if float64(100*n*n)>math.Exp2(float64(n)){
            fmt.Println(n)
        }else{
            break
        }
 
    }

 

 

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

NewImage

Problems 1-1: Comparison of running times
For each function f(n) and time t in the following table, determine the largest size n of a
problem that can be solved in time t, assuming that the algorithm to solve the problem
takes f(n) microseconds.

lgn 的算法執行時間需要f(n)毫秒,1秒等於1000毫秒,則可以有后面公式:

1000/(lgn) <= 1    

=>  1000 <= lgn  

=>  2^1000 = n

 

 
1秒
1分鍾 1小時 1天 1個月 1年 1個世紀
lgn 2^1000 2^60000 正無窮大 正無窮大 正無窮大 正無窮大 正無窮大
Sqrt(n) 10^6 4.29E+9 1.76E+13 9.01E+15      
n 1000 60000 3600000 86400000  259000000  31104000000  3110400000000
nlgn 141 4896 204095 3.94E+6      
n^2 32 245 1898 9296  50912  177584  1775838
n^3 11 40 113 443  638  3145  14598
2^n 10 16 22 27  32  35  42
n! 7 9 10 12  15 17  18 

開立方計算器:http://www.838dz.com/calculator/1633.html


另外一個地方看到是下面的,顯然不正確。

NewImage



 

參考的答案出處:

http://www.cnblogs.com/shanymen/archive/2011/11/06/2238230.html


https://docs.google.com/viewer?a=v&q=cache:hu0UWB6qpUgJ:fongfc.files.wordpress.com/2009/10/alg_sol_ch_2.pdf+&hl=zh-CN&gl=cn&pid=bl&srcid=ADGEESj5S_EjsSP4YCrBqM-wg51OMZCD2cE7hUDgpMMxgrR53J8ShQeMWMnDWzPzwFCTmeGDsa4mQCn8QPDNCcT89mXjSGUPz8D4fLIqX7SRvIETC-bqWeuoe9yUog8kpthCYtuyDtY7&sig=AHIEtbSj8XPsoBey-u5H0l1KHNNX_U9vNw


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM