Độ phức tạp của phương thức addAll của PriorityQueue là gì. Liệu nó thêm một phần tử tại một thời điểm dẫn đến O (n log n) hay nó sử dụng một quá trình heap xây dựng mà tạo ra một đống ra khỏi các yếu tố không có thứ tự trong thời gian O (n)?Độ phức tạp của ưu tiênQueue addAll()
6
A
Trả lời
7
Javadoc dường như ngụ ý rằng addAll
được thừa hưởng từ AbstractQueue nó ở đâu thực hiện như một chuỗi các thêm.
Điều này dẫn tôi tin rằng độ phức tạp là O(mlogn)
trong đó m là kích thước của bộ sưu tập được chèn vào.
2
Nhìn vào OpenJDK, có vẻ như PriorityQueue kế thừa việc thực hiện addAll từ AbstractQueue lặp qua bộ sưu tập và các cuộc gọi thêm vào mỗi phần tử.
3
... thực hiện này cung cấp O (log (n)) thời gian cho các enqueing và phương pháp dequeing ...
Vì vậy, bạn chỉ có thể giả sử n log(n)
.
Tuy nhiên - hiển nhiên - đây chỉ là những gì bạn có thể giả định. Tùy thuộc vào việc triển khai cụ thể mà bạn định sử dụng, bạn có thể tìm thấy một số thủ thuật có thể cải thiện vấn đề cho bạn.
Các vấn đề liên quan
- 1. Độ phức tạp của thuật toán
- 2. Độ phức tạp của thuật toán
- 3. Độ phức tạp của OrderedDictionary là gì?
- 4. Độ phức tạp thời gian của random.sample
- 5. Các công cụ phân tích phức tạp mã vượt quá độ phức tạp của chu trình
- 6. Độ phức tạp về thời gian đếm
- 7. Độ phức tạp thời gian của thuật toán Prim
- 8. Độ phức tạp của HashMap.containsValue() trong java là bao nhiêu?
- 9. Độ phức tạp về thời gian của system.out.println
- 10. Độ phức tạp của set_intersection trong C++ là gì?
- 11. Độ phức tạp của hàm find() trong std :: map?
- 12. Độ phức tạp của thời gian nguyên trong Haskell
- 13. F # bằng độ phức tạp của toán tử
- 14. Tính Độ phức tạp của Cyclomatic cho Javascript
- 15. Độ phức tạp của LinkedList.getLast() trong Java là bao nhiêu?
- 16. Độ phức tạp về thời gian của erlang dict
- 17. Độ phức tạp của HashMap.containsKey() trong java là bao nhiêu?
- 18. Độ phức tạp của các hoạt động bộ python?
- 19. Độ phức tạp của chức năng nhật ký là gì?
- 20. Độ phức tạp của thuật toán nhân ma trận
- 21. phức tạp của .NET List.sort()
- 22. Ví dụ về Danh sách phức tạp với dữ liệu phức tạp và bố cục phức tạp của mỗi hàng?
- 23. phức tạp tiệm cận của printf
- 24. Sự phức tạp của Đề án vectơ
- 25. Ví dụ phức tạp của ListView getItemViewType()
- 26. phức tạp của toán tử instanceof java
- 27. Object.keys() phức tạp?
- 28. Độ phức tạp của kích thước() đối với chế độ xem phần TreeSet trong Java
- 29. Độ phức tạp về thời gian của thuật toán đồ thị độ sâu đầu tiên
- 30. Độ phức tạp về thời gian được đặt trong Java
...? _O (m log n) _, không _O (m n log n) _. –
@LouisWasserman yup cố gắng cảm ơn! –
Tôi nghĩ nó sẽ là 'O (m log (n + m))'. Hãy suy nghĩ về trường hợp khi 'n = 0' –