簡體   English   中英

java.util.TreeSet的tailSet操作的時間復雜度是多少?

[英]What is the time complexity of the tailSet operation of java.util.TreeSet?

我正在使用掃掠線實現2D最接近對算法,它說您需要找到某個y坐標上方的六個點。 我所做的是將這些點放入按y坐標排序的TreeSet中,並使用tailSet方法獲取高於某個點的所有點,並進行最多6次迭代。

我想知道tailSet操作的復雜度是否為O(log n),如果是,是否在tailSet上最多重復六次O(log n)?

參考: http : //people.scs.carleton.ca/~michiel/lecturenotes/ALGGEOM/sweepclosestpair.pdf

AFAIK將tailSet設為O(log n),但對最后m元素進行迭代則為O(m * log n)

嗯...對我來說很奇怪。 我認為就大O而言,在java.util.TreeSet內部創建tailSet的過程是O(1)。

簡要說明:tailSet(),headSet()和subSet()返回非常小的對象,這些對象將所有艱苦的工作委托給基礎集合的方法。 沒有構建新的集合。 因此,O(1)並無關緊要。

討論鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM