首先證明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)
根據上面證明出來的公式,來證明兩個小題。
1、設f(n)=(lgn)!,由公式3.19,lg(n!)=θ(nlgn),得lg(f(n))=lg((lgn)!)=
θ(lgnlg(lgn))
則存在常數c和n0,當n>=n0時,lg(f(n))>=clgnlg(lgn)
由於lg(lgn)是單調遞增函式,總可以在n>=n0的範圍內找到n>=n1,使得clg(lgn)>=1
則此時lg(f(n))>=lgn,並不能滿足lgf(n)=o(lgn)
所以(lgn)!並不是多項式有界函式。
2、設f(n)=(lglgn)!,由公式3.19,lg(n!)=θ(nlgn),得lg(f(n))=
lg((lglgn)!)=θ(lglgnlglglgn)
因為對於任意的n>1,lglglgn=n0時,lg(f(n))<=c(lglgn)²
又因為任意多項式函式都比任意多對數函式增長快,所以c(lglgn)
²=o(lgn)
所以lg(f(n))=o(lgn)
則f(n)=(lglgn)!多項式有界。
演算法導論 練習題 7 4 5
快速排序遞迴樹到每個葉子為k個元素就結束了,所以高度h lg n k 每層代價cn,所以快速排序時間上限o nlgn 快速排序結束後,陣列變成 k個元素,a1,k個元素,a2.的形式 即每k個元素之後,都有乙個已經在正確位置上的元素,這些元素為a1,a2,其中ai之前的k個元素小於ai,ai之後的k...
演算法練習題
題目描述 給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前...
演算法導論第15章練習題 15 4 4
說明如何僅用表c中的 2 min m,n 項以及o 1 的額外空間來計算乙個 lcs的長度。然後說明如何用 min m,n 項以及o 1 的額外空間來做到這一點。1 兩行陣列,第乙個儲存上一行的 c i,j 第二個儲存當前行的 c i,j 最開始第一行陣列初始化為 0.c 表最左側一列 全為 0,不...