2-1 在歸并排序中對小數組采用插入排序
c. 假定修改后的算法的最壞情況運行時間為 Θ \Theta Θ(nk+nlg(n/k)),要使修改后的算法與標準的歸并排序具有相同的運行時間,作為n的一個函數,借助 Θ \Theta Θ記號,k的最大值是什么?
假定k= Θ \Theta Θ(lg n), Θ ( n k + n l g ( n / k ) ) = Θ ( n k + n lg ? n ? n lg ? k ) = Θ ( n lg ? n + n lg ? n ? n lg ? ( lg ? n ) ) = Θ ( 2 n lg ? n ? n lg ? ( lg ? n ) ) \begin{aligned}\Theta(nk+nlg(n/k))&=\Theta(nk+n\lg n-n\lg k)\\ &=\Theta(n\lg n+n\lg n-n\lg (\lg n))\\ &=\Theta(2n\lg n-n\lg (\lg n)) \end{aligned} Θ(nk+nlg(n/k))?=Θ(nk+nlgn?nlgk)=Θ(nlgn+nlgn?nlg(lgn))=Θ(2nlgn?nlg(lgn))?
當n趨近于無窮大時,lg n的增長速度遠快于lg(lg n),所以后者可忽略,上式寫為 Θ \Theta Θ(nlg n)
2-2
BUBBLESORT(A)
1 for i=1 to A.len-1
2 \quad for j=A.len downto i+1
3 \qquad