Tôi đang cố gắng làm sáng tỏ một số điều liên quan đến sự phức tạp trong một số hoạt động của TreeSet. Trên javadoc nó nói:Tính toán phức tạp của các hoạt động TreeSet trong Java?
"thực hiện này cung cấp đảm bảo log (n) Chi phí thời gian cho các thao tác cơ bản (thêm, xóa và chứa)."
Cho đến nay rất tốt. Câu hỏi của tôi là những gì xảy ra trên addAll(), RemoveAll() vv Ở đây javadoc cho Set nói:
"Nếu bộ sưu tập theo quy định cũng là một tập hợp , hoạt động có hiệu quả addAll đổi thiết lập này để nó giá trị là công đoàn của hai bộ. "
Nó chỉ giải thích kết quả hợp lý của hoạt động hay là nó đưa ra một gợi ý về sự phức tạp? Ý tôi là, nếu hai bộ được biểu diễn bằng ví dụ: cây đỏ-đen sẽ tốt hơn nếu bằng cách nào đó tham gia vào cây hơn là "thêm" từng phần tử của cái này sang phần khác.
Trong mọi trường hợp, có cách nào kết hợp hai TreeSets thành một với độ phức tạp O (logn) không?
Cảm ơn bạn trước. :-)
Trả lời các câu trả lời tôi nhận được: Tôi không thể hiểu điều này. Giả sử bạn có hai SortedSets không có các phần tử chồng chéo và được biểu diễn bằng các cây đỏ-đen. Làm thế nào bạn không thể tham gia cùng họ kể từ khi hoạt động "tham gia" trong cây đỏ đen mất thời gian O (log (n + m))? –