攤還分析的背景
攤還分析
攤還分析的具體方法
聚集方法
會計方法(核方法)
勢方法例子
棧操作問題
對於乙個棧,定義其三種操作,計算其平均代價。
聚集方法:
會計方法
勢方法
k位二進位制計算器問題
該計算器中有乙個0/1陣列a[1...k-1],該陣列表示乙個k位的二進位制數x,其中x的最低位儲存在a[0]中,而x的最高位儲存在a[k-1]中。初始時,x = 0。定義操作increment如下:
increment(a)i = 0;
while i
求解increment操作的代價,代價標準為increment操作中對0以及1反轉的次數。
聚集方法:
會計方法
勢方法
另外,依據勢方法可以進一步討論該問題,可以從計數器不是從0的這一狀態開始進行分析。
幾種基本的攤還分析方法
1.聚合分析 這種方法用來確定乙個n個操作的序列的總代價的上界t n 因而每個操作的平均代價為t n n。我們將平均代價作為每個操作的攤還代價,因此所有操作具有相同的攤還代價。聚集方法的目的 分析平攤代價的上界 分析方法 分析操作序列中每個操作的代價上界ci 求得操作序列的總代價的上界t n c1 ...
攤還分析 1 演算法導論 23
攤還分析 amortized analysis 是一種分析乙個操作序列中所執行的所有操作的平均時間分析方法。與一般的平均分析方法不同的是,它不涉及概率的分析,可以保證最壞情況下每個操作的平均效能。下面介紹癱瘓分析中的最常用的三種技術。先來看對棧進行操作的例子。通常,棧能夠進行push s,x 與po...
簡單理解演算法篇 攤還分析
ref 攤還分析是用來評價程式中的乙個操作序列的平均代價,有時可能某個操作的代價特別高,但總體上來看也並非那麼糟糕,可以形象的理解為把高代價的操作 分攤 到其他操作上去了,要求的就是均勻分攤後的平均代價。攤還分析有三種常用的技術 聚合分析,核算法,勢能法。首先看個例子,現在有三種操作,push s ...