Algorithm 将堆栈实现为阵列的成本分析?
请参考上述材料的答案2。我可以把课文一直讲到那一点。我似乎总是在没有说明的情况下放松概念化,这可能是因为我对数学符号不熟悉 我了解昂贵操作的成本(当堆栈已满时,阵列将加倍) 1+2+4+8+…+2^i,其中i是该序列的索引。所以指数0=1,1=2,2=4,3=8 我可以看到昂贵操作的顺序,但我对以下解释感到困惑 现在,在n个操作的任意序列中,调整大小的总成本为 1 + 2 + 4 + 8 + ... + 2^i对于某些2^iAlgorithm 将堆栈实现为阵列的成本分析?,algorithm,stack,time-complexity,big-o,amortized-analysis,Algorithm,Stack,Time Complexity,Big O,Amortized Analysis,请参考上述材料的答案2。我可以把课文一直讲到那一点。我似乎总是在没有说明的情况下放松概念化,这可能是因为我对数学符号不熟悉 我了解昂贵操作的成本(当堆栈已满时,阵列将加倍) 1+2+4+8+…+2^i,其中i是该序列的索引。所以指数0=1,1=2,2=4,3=8 我可以看到昂贵操作的顺序,但我对以下解释感到困惑 现在,在n个操作的任意序列中,调整大小的总成本为 1 + 2 + 4 + 8 + ... + 2^i对于某些2^i
2^i
它是否说操作数n总是大于2^i?n代表操作的数量还是数组的长度
以下是我不懂的:
如果所有操作都是推送,那么2^i将是2的最大幂
少于。这个总数最多是2n− 一,
有人能解释一下吗?
n
是最大的堆栈大小,此时的内部数组大小是两个2^(i+1)>=n的最小幂,所以最后一次扩展操作需要2^i最后一个语句如何“如果所有操作均为推送,则2^i将是小于n的2的最大幂。这个总数最多是2n− 1”?我不明白。特别是“2^I将是2的最大幂次,小于n”n
push创建堆栈大小n
。数组大小是多少?一些2的幂次。什么幂次?提供2^(I+1)>=n
为了容纳堆栈项我理解你的意思,我认为这是作者解释其符号的方式。就像“2^I将是2小于n的最大幂”直接翻译成2^I和2^I一样
1 + 2 + 4 + 8 + ... + 2^i = 2^(i+1) - 1