algorithm – 查找Hash函数的摊销复杂性

当我遇到这个问题时,我正在为我的决赛学习.

对于1a,我认为它的O(1)是为了分摊复杂性,因为它确实x mod N足够稀疏并且线性探测使它失败

但是我不确定如何陈述或证明这一点.

对于1b,它将散列到相同的位置,因此每次插入时它将线性探测更多,但我不确定如何从中导出运行时.

最佳答案 1a,除了最后一次之外没有任何碰撞(N将与每个值碰撞,即N将首先与0碰撞,然后你将值增加1,它将与1碰撞,依此类推等等),总成本为1 1 … 1 n =(n-1次)n = 2n-1,摊余成本为(2n-1)/ n,O(1)为big-O表示法.

在图1b中,对于第i个插入将存在(i-1)个冲突,加上插入操作,第i个操作的成本将是i.因此总成本为1 2 … n-2 n-1 n =(n 1)* n / 2,您已插入n个时间,摊销成本将为(n 1)/ 2.

点赞