2013-03-14 149 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