gpt4 book ai didi

algorithm - 具有快速插入和快速搜索的排序序列的最简单 DS 是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:36:59 27 4
gpt4 key购买 nike

我正在寻找一个易于实现(在 C++ 中)的数据结构 D,它维护一个排序的整数序列(或任何可比较的对象),具有快速插入和快速搜索(即可以检查如果 XD 中,则获取第 i 个元素)。快应该是 O(log(n))、O(1) 还是 O(sqrt(N))?

template<type T>
Class D {
D(...) { ... }
void insert(T x);
int get_ith(int x);
boolean check_x(T x);
}

目前,我了解 AVL 树、红黑树、跳表、尝试、哈希。所有这些都需要非常复杂且难以编码的解决方案。尝试可能是最不复杂的。然而,删除元素和为 trie 选择字母表等操作是很困难的。

我希望探索简短而快速的新颖解决方案。

提前致谢!

最佳答案

如果您知道整数值的上限,您可以简单地占用一 block 内存并使用集合中数字的位。

  • 如果 X 在 D 中:O(1)
  • 插入:O(1)
  • 删除:O(1)

如果整数在从最低值到最高值的范围内稀疏,迭代会很慢。在这种情况下,内存消耗也可能是 Not Acceptable 。

关于algorithm - 具有快速插入和快速搜索的排序序列的最简单 DS 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56122839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com