【问题标题】:how can I search an element in Skip-List如何在跳过列表中搜索元素
【发布时间】:2015-05-17 16:41:13
【问题描述】:

我正在寻找一种方法来在跳过列表中找到给定的元素 x,它是列表中的第 k 个(在它之前有 k-1 个元素)。 算法的预期时间应该是O(log K)

我找到了采用 O(log n) 的已知算法,但这里是 O(log K)。

提前谢谢你

【问题讨论】:

    标签: algorithm skip-lists


    【解决方案1】:

    您需要扩充跳过列表,以便每个节点都有其“子树”中元素的计数(从其右下位置直到其级别中的下一个节点的元素)。

    很容易看出,您可以在不改变列表操作复杂性的情况下扩充此信息。

    一旦你有了这个元数据,你只需要继续上一层,直到下一层的节点已经离右边太远了。此时,再往下一层。


    顺便说一下,这个问题通过增强被称为动态订单统计。我从来没有在跳过列表中看到它,但是您可以找到有关如何使用其他有序树执行此操作的链接,这几乎是相同的想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2016-02-11
      相关资源
      最近更新 更多