【问题标题】:Finding successor, predecessor faster than BST比 BST 更快地找到继任者、前任者
【发布时间】:2014-09-11 08:55:39
【问题描述】:

我正在寻找具有以下属性的数据结构: 对于整数列表(例如 x > 1,并且 x

可以执行:predecessor(x)successor(x)insert(x)delete(x)

这可以用二叉搜索树来实现,所有操作都是 O(log n)。好吧,根据我的教授的说法,这可以在 O(log log U) 时间内使用 successor 和前身来实现,在 O(log U) 时间内使用 insertdelete 来实现。

它需要一个大小为 U 的数组和一个二叉搜索树。有人知道这个算法是什么吗?

【问题讨论】:

  • Van Emde Boas 树、x-fast trie 和 y-fast trie 都在那个时间复杂度内做到了这一点,y-fast trie 也符合你的空间复杂度。实际上iirc它需要|x|空间而不是|U|
  • 谢谢,我去看看:)

标签: algorithm time-complexity binary-search-tree


【解决方案1】:

查看Y-Fast TrieX-Fast Trie

我相信这些就是您正在寻找的。​​p>

来自维基百科

Y-Fast Trie:

在计算机科学中,y-fast trie 是一种用于存储来自有界 >> 域的整数的数据结构。它支持时间为 O(log log M) 的精确和前任或后继查询,使用 O(n) > 空间,其中 n 是存储值的数量,M 是域中的最大值。

X-Fast Trie:

在计算机科学中,x-fast trie 是一种用于存储来自有界 > 域的整数的数据结构。它支持时间为 O(log log M) 的精确和前任或后继查询,使用 O(n > log M) 空间,其中 n 是存储值的数量,M 是域中的最大值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2011-01-04
    • 1970-01-01
    相关资源
    最近更新 更多