算法导论Chapter17学习课件.pptVIP

  • 9
  • 0
  • 约7.54千字
  • 约 55页
  • 2016-12-06 发布于江苏
  • 举报
17.4.1. 表扩张 例如:设当前表大小为m,则m/2个元素是本表扩张前由原表copy过来的,它们没有存款,故当往表中插入后一半元素时,应为前一半元素各存1元,当m个表目填满时,各元素均有1元支付新扩张的copy费用 * ∵任意时刻总存款≥0 ∴总平摊成本O(n)≥总实际成本 x 当前表 下一次扩张 上一次扩张 m/2 17.4.1. 表扩张 ④势能分析法 i) 势函数Φ:刚完成扩张时势最小(0),表满时势能最大(表的项数),以支付下次扩张copy的代价 Φ(T)=2*num[ T ]-size[ T ] (17.5) 显然: 刚扩张时,∵num[T]=size[T]/2 ∴Φ(T)=0 表满时,∵num[T]=size[T] ∴Φ(T)=size[T] ii)正确性 ∵α≥1/2, num[T]≥size[T]/2 //表至少半满 ∴Φ(T)≥0=Φ0 * 17.4.1. 表扩张 iii)OPi的平摊成本 设OPi之后表项数、size及势分别为numi,sizei和Φi,显然num0=size0=Φ0=0 (a)若未扩张,则sizei=sizei-1, numi=numi-1+1 * 17.4.1. 表扩张 (b)若扩张,则 sizei=2sizei-1= 2(numi-1)//numi-1=numi-1

文档评论(0)

1亿VIP精品文档

相关文档