Algorithm 修正增量函数的摊余成本
这样,对于n位二进制字符串A[0…n-1],其中A[0]是最低有效位,[n-1]是最高有效位,增量算法是:Algorithm 修正增量函数的摊余成本,algorithm,data-structures,amortized-analysis,Algorithm,Data Structures,Amortized Analysis,这样,对于n位二进制字符串A[0…n-1],其中A[0]是最低有效位,[n-1]是最高有效位,增量算法是: Increment(A,n): i←0 while i<k and A[i]=1 do A[i] ← 0 i ← i+1 if i < k then A[i] ← 1 增量(A,n): 我←0 当i如果我们将计数器从0增加到2^m,每个位翻转多少次 第0位翻转2m次。第1位翻转2m-1次。但是2次翻转2米2倍,等等 如果我们计算总成本: 第0位成本为1*2m
Increment(A,n):
i←0
while i<k and A[i]=1 do
A[i] ← 0
i ← i+1
if i < k then
A[i] ← 1
增量(A,n):
我←0
当i如果我们将计数器从0增加到2^m,每个位翻转多少次 第0位翻转2m次。第1位翻转2m-1次。但是2次翻转2米2倍,等等 如果我们计算总成本: 第0位成本为1*2m。第1位成本为2*2m=2m。第2位成本为4*2m-2=2m,等等 每一个改变的比特都有相同的总成本,并且有m+1比特改变,所以总成本(m+1)为2m 如果增量数量n=2m,则每个增量的摊余成本为 (m+1)2m/n =((log2n)+1)*n/n
=1+log2n这是否回答了您的问题?