紅黑樹時間複雜度證明 O lgn

2021-09-12 19:51:18 字數 527 閱讀 8627

紅黑樹的時間複雜度為o(lgn),當且僅當"節點數為n的一棵紅黑樹的高度滿足o(lgn)的要求"

證明如下:

內容擷取自部落格:

下面通過數學歸納法,證明高度為h的紅黑樹,其包含的內節點個數至少為2^(bh(x)) -1

當 h = 0:

內節點個數為0,bh(x) = 0,原命題顯然成立

當 h > 0,且樹的高度為h-1,其黑色高度至少為bh(x) - 1,所以該樹包含的內節點個數至少為2^(bh(x)-1) -1.

當h > 0,且樹的高度為h時,

對於節點x的左右子樹,其黑色高度為bh(x)或者bh(x) - 1

根據(2)已知:x的左右子樹,即為高度h-1的節點,其包含的內節點至少為2^(bh(x)-1) -1。

因此:節點x包含的節點數至少為:2*(2^(bh(x)-1) -1) + 1 = 2^(bh(x)) -1

所以原命題成立,證畢

Manacher時間複雜度證明

今天,我們來證明一下manacher的時間複雜度。先貼上manacher演算法的模板 s 0 s m for b 1 ss b 0 b s m for int i 1 i m i 我們考慮產生複雜度的地方,分別是最外層對整個字串的遍歷和每次對回文串擴充套件的while。顯然,最外層的for迴圈是o ...

紅黑樹的時間複雜度為logN,怎麼計算?

首先計算,節點數為n的紅黑樹,高度最高為2log n 1 然後證明逆否命題 高度為h的紅黑樹,節點數至少有2 h 2 1,然後我們知道紅黑樹特性四 在任意一條路徑上,黑色節點的數量是都相等,成為黑高,設定bhx,然後紅黑樹特性五,表明紅色節點的子節點只能是黑色節點,繼而證明了bhx h 2 繼而就要...

建堆O n 時間複雜度證明

建堆複雜度先考慮滿二叉樹,計算完全二叉樹建堆複雜度基本相同。對滿二叉樹而言,第i層 根為第0層 有2 i個節點。由於建堆過程自底向上,以交換作為主要操作,因此第i層任意節點在最不利情況下,需要經過 n i 次交換操作才能完成以該節點為堆根節點的建堆過程。因此,時間複雜度計算如下 t n 2 0 n ...