gpt4 book ai didi

java - TreeSet 中有序操作的时间复杂度是多少?

转载 作者:搜寻专家 更新时间:2023-10-31 19:41:40 24 4
gpt4 key购买 nike

java.util.TreeSet中下列操作的时间复杂度是多少? ?

  • first()
  • last()
  • 降低()
  • higher()

我会假设这些是常数时间,但 API 不作任何保证。

最佳答案

实际上,我原以为这些操作对于一般实现来说都是O(logN)

  • 对于 first()last()O(1) TreeSet 实现需要维护一个指针分别到树中最左边和最右边的叶节点。维护这些会增加每次插入的恒定成本,并且至少会增加每次删除的恒定成本。实际上,该实现可能会即时找到最左边/最右边的节点……这是一个O(logN) 操作。

  • lower()higher() 方法必须完成与 get 相同的工作,因此是 O(logN).

当然,您可以自己查看源代码以了解实际情况。 (正如其他人所做的那样:见下文。)

关于java - TreeSet 中有序操作的时间复杂度是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214670/

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