【问题标题】:Complexity of TreeSet operationsTreeSet 操作的复杂性
【发布时间】:2013-03-14 15:18:55
【问题描述】:
  • java.util.TreeSet 中higher() 的复杂度是多少?
  • 按升序访问所有元素的(摊销)复杂性是多少?

description 中,它只说“此实现为基本操作(添加、删除和包含)提供有保证的 log(n) 时间成本”。

【问题讨论】:

  • “按升序访问所有元素”是指遍历集合还是重复调用higher()
  • 迭代集合。不仅是所有元素的情况,还包括任何子序列(例如,“给我接下来的 4 个元素”)。至于higher(),我需要确保它总是在O(logN)中。

标签: java tree binary-tree binary-search-tree treeset


【解决方案1】:

我相信higher() 也是log(n)。要找到较高的元素,请找到将输入插入到 Higher() 的位置,然后“向上”一个,得到 log(n) 时间。

如果您遍历元素,则您正在查看 n 次。如果您使用 contains 访问每个购买的元素,那么您正在查看 n log(n) 时间。

【讨论】:

  • 其实:包含一定在log(N)中;为什么是 n 次?
  • 好吧,如果你使用log(n) n 次,那么它就是n log(n)
猜你喜欢
  • 2011-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
相关资源
最近更新 更多