【发布时间】: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) 时间内使用 insert 和 delete 来实现。
它需要一个大小为 U 的数组和一个二叉搜索树。有人知道这个算法是什么吗?
【问题讨论】:
-
Van Emde Boas 树、x-fast trie 和 y-fast trie 都在那个时间复杂度内做到了这一点,y-fast trie 也符合你的空间复杂度。实际上iirc它需要
|x|空间而不是|U| -
谢谢,我去看看:)
标签: algorithm time-complexity binary-search-tree