如何證明替罪羊樹的均攤複雜度?
01-08
當然是選擇。。用勢能法分析啦~
我們知道,一個結點 被稱為 α-weight-balanced 當且僅當 ,通常定義 ,這會使一些分析變得簡單。(也使weight-balanced tree不需要考慮邊界情況)
定義 ,那麼可以看出 α-weight-balanced 相當於 。
設重構操作的時間為 ,定義樹 的勢函數 。
每次插入會使路徑上的所有結點 的 ,此過程的
注意到 ,可得
對於每次重構,有 ,那麼
所以,替罪羊樹一次插入的均攤代價為 。
推薦閱讀:
※如何理解演算法平攤分析中的勢能方法(Potential Method)?
※實現group by最好的辦法?
※學習演算法與數據結構,有什麼比較好的mooc推薦么,還有比較好的書籍推薦?
※如何看待Thomas Cormen所說看完《演算法導論》需要的時間 ?