2013-03-14 70 views
1
  • 什么是java.util.TreeSet中higher()的复杂性?
  • 以升序访问所有元素的(分期付出)复杂度是多少?

description中,它只表示“此实现为基本操作(添加,删除和包含)提供了保证的log(n)时间成本”。TreeSet操作的复杂性

+1

“按照升序访问所有元素”是指迭代集合还是反复调用'higher()'? – NPE 2013-03-14 15:23:18

+0

迭代集合。不仅是所有元素的情况,而且还有任何子序列(例如,“给我接下来的4个元素”)。至于更高(),我需要确保它始终在O(logN)。 – user1377000 2013-03-14 15:29:36

回答

0

我相信higher()也是log(n)。要找到更高的元素,找到你将输入插入到更高()的位置,并且“上”一个,导致log(n)时间。

如果你遍历元素,你看n次。如果您访问使用包含的每个元素,则您正在查看n个log(n)时间。

+0

其实:包含肯定是在log(N)中;为什么n次? – user1377000 2013-03-14 15:30:33

+1

那么如果你使用'log(n)''n'次,那么它就是'n log(n)' – Esailija 2013-03-14 15:41:44