演算法導論 練習題 3 2 4

2021-07-29 00:21:22 字數 723 閱讀 2996

首先證明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,不...