概率跳过列表空间复杂度

时间:2014-12-16 06:51:48

标签: data-structures asymptotic-complexity space-complexity skip-lists

所以我看到了关于概率跳过列表空间消耗的这个问题:(answer)

但我认为提问者并不清楚他是否想要一种预期的方法或最坏的情况。

所以我想再次将这个问题提到辩论中,我将解释为什么我感到困惑。

要清楚 - 我正在最坏的情况中寻找概率跳过列表的空间复杂度。 这就是我的想法:

一方面,我们假设最大级别数是log(n),很容易推断,在最坏的情况下,我们可能在每个级别中有n个节点,这将给我们O(n LOGN)。 另一方面,我假设可能存在多于log(n)级别(例如列表)并且我们将其设置为n - 然后我们得到n n =>为O(n ^ 2)

BUT!我不明白为什么我们有权限制水平,如果一个新的水平取决于投掷硬币,让我们假设在最坏的情况下我们会得到无限时间头(这意味着一个新的水平)然后我们不同意它甚至没有界限?! 我很困惑。

1 个答案:

答案 0 :(得分:1)

如果没有在跳过列表的高度上设置上限,则最坏情况下的空间使用没有上限。对于你可以放置的任何界限,有一些可怕的不幸和天文学上不可能的跳过列表执行会导致许多层太高而上限不会成立。因此,在这种情况下,空间使用没有上限。

也就是说,大多数标准跳过列表实现在每个节点的高度上放置一些上限M,通常选择这样M使得M大于log n。在这种情况下,最坏情况下的空间使用率为Θ(Mn),如果每种模式都使用所有M级,则会发生这种情况

希望这有帮助!