[英]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.