聚集分析:要證明對所有的n,由n個操作所構成的序列的總時間在最壞情況下為t(n)。因此,在最壞情況下,每個操作的平攤代價為t(n)/n。
17.1-1 如果一組棧操作中包括了一次multipush操作,它一次把k個元素壓入棧內,那麼棧操作的平攤代價的界o(1)是否還能保持?
不能,不能保證棧內元素個數,因此不能保證平攤代價。
17.1-2 證明:在k位計數器的例子中,如果包含乙個decrement操作,n個操作可能花費θ(nk)時間。
17.1-3 對某個資料結構執行n個操作的乙個序列。如果i為2的整數冪,則第i個操作的代價為i,否則為1。請利用聚集分析來確定每次操作的平攤代價。
《演算法導論》筆記 第17章 17 2 記賬方法
記賬方法 對不同的操作賦予不同的費用,某些操作的費用比他們的實際代價或多或少。對乙個操作的收費的數量稱為平攤代價。當平攤代價超過實際代價時,兩者的差值被當做存款,並賦予資料結構中一些特定物件。存款可以在以後用於補償那些平攤代價低於其實際代價的操作。總存款等於總的平攤代價和總的實際代價之差,始終是非負...
《演算法導論》筆記 第17章 17 3 勢能方法
勢能方法 已預付的工作表示成一種勢能或勢,他在需要時可以釋放出來,以支付後面的操作。勢函式 將每個資料結構di對映為乙個實數 di 即與資料結構di相聯絡的勢。第i個操作的平攤代價c i ci d i d n個操作總的平攤代價為 c i ci dn d0 如果定義乙個勢函式使得 dn d0 則總的平...
演算法導論第17章 攤還分析
在攤還分析中,我們求資料結構的乙個操作序列中所執行的所有操作的平均時間,來評價操作的代價,從而說明乙個操作的平均代價是很低的,即使序列中某一單一操作的代價很高,不涉及改了,但可以保證最壞情況下每個操作的平均時間。攤還分析中主要的三種方法 1 聚合分析 2 核算法 即記賬法 3 勢能法 1 聚合分析 ...