首先計算,節點數為n的紅黑樹,高度最高為2log(n+1),然後證明逆否命題:高度為h的紅黑樹,節點數至少有2^h/2 - 1,。
然後我們知道紅黑樹特性四:在任意一條路徑上,黑色節點的數量是都相等,成為黑高,設定bhx,然後紅黑樹特性五,
表明紅色節點的子節點只能是黑色節點,繼而證明了bhx>= h/2
繼而就要證明高度為h的紅黑樹,節點數至少有2^bhx - 1.
利用數學歸納法證明:
當h為0時,節點數至少有0個,成立
當h- 1時,節點數至少有2^bhx - 1 - 1個成立
當h時,根節點有兩個高為h - 1的子樹,兩個子樹的節點數加上根節點就是高為h的節點數
2(2^bhx - 1 - 1) + 1 = 2^bhx - 1,從而證明高為h的紅黑樹,至少有2^bhx - 1個節點,從而證明了紅黑樹的時間複雜度為logn。
紅黑樹時間複雜度證明 O lgn
紅黑樹的時間複雜度為o lgn 當且僅當 節點數為n的一棵紅黑樹的高度滿足o lgn 的要求 證明如下 內容擷取自部落格 下面通過數學歸納法,證明高度為h的紅黑樹,其包含的內節點個數至少為2 bh x 1 當 h 0 內節點個數為0,bh x 0,原命題顯然成立 當 h 0,且樹的高度為h 1,其黑...
演算法 時間複雜度 logN 底數
最近有好幾學生問我,無論是計算機演算法概論 還是資料結構書中,關於演算法的時間複雜度很多都用包含o logn 這樣的描述,但是卻沒有明確說logn的底數究竟是多少。演算法中log級別的時間複雜度都是由於使用了分治思想,這個底數直接由分治的複雜度決定。如果採用二分法,那麼就會以2為底數,三分法就會以3...
時間複雜度為O n 的排序
題目 某公司有幾萬名員工,請完成乙個時間複雜度為o n 的演算法對該公司員工的年齡作排序,可使用o 1 的輔助空間。分析 排序是面試時經常被提及的一類題目,我們也熟悉其中很多種演算法,諸如插入排序 歸併排序 氣泡排序,快速排序等等。這些排序的演算法,要麼是o n2 的,要麼是o nlogn 的。可是...