当前位置: 首页 > 知识库问答 >
问题:

具有对数插入/删除和"no-大于"的数据结构

韩弘方
2023-03-14

我现在正在解决一个编码挑战,我有一个解决方案,但是为了让它工作,我需要一个支持四个操作的数据结构:

  • 插入O(对数(N))

我尝试使用Java的TreeSet来解决它,它可以通过添加,删除HeadSetTailSet(并检查最后两个的大小)来支持这些操作。但是这个解决方案太慢了。我还没有检查时间复杂性,但是我有一种感觉,... set不能在对数时间内运行(或者运行效率低下)。

有人知道我可以实现一个数据结构来支持这些操作吗?这可能吗?如果它是树形的,最好是自平衡的?

共有1个答案

董飞航
2023-03-14

正如在上面的评论中所提到的,“订单统计树”优雅地解决了我要求的问题,而且相对容易实现,最终为我提供了一个可接受的挑战提交。谢谢

 类似资料:
  • 我正在寻找一个非常具体的数据结构。假设已知元素的最大数量。所有元素都是整数。允许复制。行动包括: 查阅如果我插入n个元素,是最小的元素,是最高的元素是k个最小的元素。所需运行时间: 插入。执行排序的插入,其中是一个整数。所需的运行时: 删除。删除(i)删除第i个元素。所需的运行时: 我想要一种数据结构,是这样吗?我的问题与语言无关,但我用C语言编写代码。

  • 本文向大家介绍插入数据结构中的最大HBLT,包括了插入数据结构中的最大HBLT的使用技巧和注意事项,需要的朋友参考一下 可以使用Max Meld操作将其插入Max HBLT。此操作用于将两个Max HBLT合并为一个Max HBLT。假设,我们想将x插入一个称为H的最大HBLT中。我们将使用x创建一个小的HBLT,然后将其与H融合,然后在融合之后,H将保留所有包含x的元素。因此,需要执行合并操作来

  • 即使在最坏的情况下,是否有任何数据结构可以提供O(1)——即常数——插入复杂性和O(log(n))搜索复杂性? 排序后的向量可以进行O(log(n))搜索,但插入需要O(n)(考虑到我并不总是在前面或后面插入元素这一事实)。而列表可以进行O(1)插入,但不能提供O(log(n))查找。 我想知道这样的数据结构是否可以实现。

  • 本文向大家介绍从数据结构中的最大HBLT中删除最大元素,包括了从数据结构中的最大HBLT中删除最大元素的使用技巧和注意事项,需要的朋友参考一下 在Max HBLT中,将根放在根上。如果根被删除,则两个最大的HBLT(即左和右)将分开。通过再次将这两个Max HBLT融合在一起,我们可以将它们合并为一个。因此,在融合之后,所有元素都将存在,除了已删除的元素。

  • 问题内容: 我一直在阅读一些有关SQL注入的信息,我想确保我的代码可以说“安全”,我打算使用RegExp验证程序来检查用户输入,但是这里的另一篇文章建议仅使用参数化查询,我正在使用它们,但我想确保我的代码是安全的,对吗? 我将最后一部分剪短,使文章更短,其余的只是尝试并捕获异常并关闭数据库连接,以及提供有关插入成功的用户反馈。 问题答案: 您的代码很好,可以防止注入,因为值是作为参数而不是字符串文

  • 我想递归地删除一个链表。我想到了如何迭代地做到这一点,但我对如何做到这一点很好奇。到目前为止我有: 我定义的地方 如果需要,我可以去掉头部,但我不知道如何去掉身体或尾巴,然后正确地缝合列表,更不用说递归地做了。我该如何进行?为什么这样不行? 编辑:删除问号并替换为我认为可行的代码。