演算法導論學習筆記-第十七章-平攤分析

來源:互聯網
上載者:User

第十七章 平攤分析

 

總結:平攤分析是一種用來分析執行一系列類似操作的演算法的工具,它對整個操作序列的真實代價限界。本章介紹了平攤分析的三種方法,分別是聚集分析、記賬方法、勢能方法。每種方法都通過分析棧操作和二進位計數器增1來舉例分析。最後,本章用平攤分析的方法分析了表動態擴張和收縮的代價限界。

 

1.    聚集分析

證明對所有的n,有n個操作所構成的序列的總時間在最壞情況下為T(n)。因此,每個操作的平均代價為T(n)/n

 

2.    記賬方法

對不同的操作賦予不同的費用,某些操作的費用比它們的實際代價或多或少。一個操作的平攤代價可以看作兩部分:實際代價和存款(或被儲蓄或被用完)。必須注意,資料結構中的總存款必須始終是非負的。

 

例如,對於棧操作,每次PUSH的時候支付2元,1元用於支付該PUSH操作的實際代價,還有1元用於支付該元素被POP出來時的代價。而對POP操作不收取任何費用。

 

3.    勢能方法

勢能方法的關鍵就是定義勢函數。勢函數將每個資料結構Di映射為一個實數Φ(Di),即與資料結構Di相聯絡的勢。Di為對資料結構Di-1作用第i個操作的結果。勢函數需要滿足Φ(Dn)>= Φ(D0)。

每個操作的平攤代價為其實際代價加上由於該操作所增加的勢。n個操作的總平攤代價即為總的實際代價的一個上界。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.