我正在嘗試清除有關TreeSet某些操作的複雜性的一些事情。在javadoc的,它說:Java中TreeSet操作的計算複雜性?
「此實現提供了 基本操作(添加,刪除和 含) 保證的log(n)的時間成本。」
到目前爲止好。我的問題是關於中的addAll()的removeAll()等會發生什麼這裏設置的javadoc說:
「如果指定集合也是一個 集,則addAll操作有效 修改這一套使得其值是 這兩套的結合。「
它只是解釋操作的邏輯結果,還是提示覆雜性?我的意思是,如果兩組由例如紅黑樹,以某種方式加入樹比將另一個元素的「每個元素」「添加」更好。
在任何情況下,有沒有辦法將兩個TreeSet合併成一個O(logn)複雜度?
預先感謝您。 :-)
回覆我得到的答案: 我不太明白這一點。假設您有兩個沒有重疊元素並由紅黑樹表示的SortedSet。因爲在紅黑樹中的「加入」操作需要O(log(n + m))時間,所以你不能加入它們? – 2010-08-02 18:35:23