2

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

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

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

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

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

但!我不明白为什么我们有权限制级别,如果新级别取决于抛硬币,我们假设在最坏的情况下我们将获得无限次正面(这意味着一个新级别)然后我们不同它甚至没有界限?!我很困惑。

4

1 回答 1

1

如果您没有为跳过列表的高度设置上限,则最坏情况下的空间使用没有上限。对于您可以放置​​的任何界限,跳过列表的一些非常不幸且天文数字不太可能的执行会导致层数如此之高以至于上限不成立。因此,在这种情况下,空间使用没有上限。

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

希望这可以帮助!

于 2014-12-16T07:30:50.673 回答