1.聚合分析
這種方法用來確定乙個n個操作的序列的總代價的上界t(n)。因而每個操作的平均代價為t(n)/n。我們將平均代價作為每個操作的攤還代價,因此所有操作具有相同的攤還代價。
聚集方法的目的
• 分析平攤代價的上界
分析方法
• 分析操作序列中每個操作的代價上界ci
• 求得操作序列的總代價的上界t(n)=c1+c2+…+cn
• 將t(n)平攤到每個操作上得到平攤代價t(n)/n
特點• 每個操作獲得相同的平攤代價
• 較準確地計算t(n)需要一定的技巧
2.會計法
此方法用來分析每個操作的攤還代價。當存在不止一種操作時,美中操作的攤還代價可能是不同的。
–不同型別操作賦予不同的平攤代價
–某些操作在資料結構的特殊物件上「預付」代價
• accounting方法
– 目的是分析n個操作序列的複雜性上界
– 乙個操作序列中有不同型別的操作
– 不同型別的操作的操作代價各不相同
– 於是我們為每種操作分配不同的平攤代價
• 平攤代價可能比實際代價大,也可能比實際代價小
• 如果平攤代價比實際代價高:一部分用於支付實際代價, 多餘部分作為credit附加在資料結構的具體資料物件上
• 當乙個操作的平攤代價比實際代價低時: credit用來補充 支付實際代價
3.勢能法
potential方法
– 目的是分析n個操作系列的複雜性上界
– 在會計方法中,如果操作的平攤代價比實際代價大, 我們將餘額與資料結構的資料物件相關聯
–potential方法把餘額與整個資料結構關聯,所有的這 樣的餘額之和,構成資料結構的勢能
• 如果操作的平攤代價大於操作的實際代價,勢能增加
• 如果操作的平攤代價小於操作的實際代價,要用資料 結構的勢能來支付實際代價,勢能減少
攤還分析的有關知識
攤還分析的背景 攤還分析 攤還分析的具體方法 聚集方法 會計方法 核方法 勢方法例子 棧操作問題 對於乙個棧,定義其三種操作,計算其平均代價。聚集方法 會計方法 勢方法 k位二進位制計算器問題 該計算器中有乙個0 1陣列a 1.k 1 該陣列表示乙個k位的二進位制數x,其中x的最低位儲存在a 0 中...
攤還分析 1 演算法導論 23
攤還分析 amortized analysis 是一種分析乙個操作序列中所執行的所有操作的平均時間分析方法。與一般的平均分析方法不同的是,它不涉及概率的分析,可以保證最壞情況下每個操作的平均效能。下面介紹癱瘓分析中的最常用的三種技術。先來看對棧進行操作的例子。通常,棧能夠進行push s,x 與po...
簡單理解演算法篇 攤還分析
ref 攤還分析是用來評價程式中的乙個操作序列的平均代價,有時可能某個操作的代價特別高,但總體上來看也並非那麼糟糕,可以形象的理解為把高代價的操作 分攤 到其他操作上去了,要求的就是均勻分攤後的平均代價。攤還分析有三種常用的技術 聚合分析,核算法,勢能法。首先看個例子,現在有三種操作,push s ...