命题:在栈的调整大小数组实现中,从空数据结构开始的任何操作序列的平均数组访问次数在最坏情况下是恒定的。
证明草图:对于每个导致数组增长的push()(比如从大小N增长到大小2N),考虑最近导致堆栈大小增长到k的
N/2-1
个push()操作,其中k从N/2+2到N
。将4N个数组访问扩展为N/2个数组访问(每个push一个),我们得到每个操作的平均成本为9个数组访问。证明M个操作使用的数组访问次数与M成比例更加复杂。(算法第四版第1.4章)
我没有完全理解证明草图。请帮助我理解。