2009-08-13 18 views
21

Bất kỳ ai cũng có thể cho tôi tham khảo trang web chứa tóm tắt các cấu trúc dữ liệu Java chính và độ phức tạp tương ứng của chúng trong thời gian (đối với một số hoạt động nhất định như thêm, tìm, xóa), ví dụ: Hashtable s là O (1) để tìm kiếm, trong khi LinkedList s là O (n). Một số chi tiết như sử dụng bộ nhớ sẽ được tốt đẹp quá.Cấu trúc dữ liệu Java Tham chiếu

Điều này sẽ thực sự hữu ích khi suy nghĩ trong cấu trúc dữ liệu cho thuật toán.

+1

Khác với Javadocs? –

+1

Vâng, tài liệu java có tất cả chúng tách biệt và phức tạp không thực sự dễ tìm. Tôi không muốn chi tiết của từng loại, chỉ là bản tóm tắt có độ phức tạp về thời gian –

Trả lời

23

Có một lý do để nghĩ rằng việc thực hiện của Java là khác nhau (về độ phức tạp) so với một ngôn ngữ thuyết bất khả tri, thực hiện chung chung? Nói cách khác, tại sao không chỉ đề cập đến một tài liệu tham khảo chung về sự phức tạp của cấu trúc dữ liệu khác nhau:

NIST Dictionary of Algorithms and Data Structures

Nhưng, nếu bạn nhấn mạnh vào Java-cụ thể:

Java standard data structures Big O notation

Java Collections cheatsheet V2 (liên kết chết, nhưng this is the first version of the cheatsheet)

+4

cảm ơn http://simplenotions.wordpress.com/2009/05/13/java-standard-data-structures-big -o-notation/ –

+0

Hai trong số các liên kết đó đã chết. Tôi muốn chỉnh sửa nó nhưng tôi phải thay đổi ý nghĩa của bài đăng của bạn. – Daniel

+0

Tôi đã cập nhật liên kết ngay bây giờ – bluish

0

Tôi không tin rằng có bất kỳ trang web nào phác thảo điều này (có vẻ như là một ý tưởng hay cho một dự án). Tôi nghĩ rằng một phần của vấn đề là sự hiểu biết về cách mỗi thuật toán chạy là rất quan trọng. Đối với hầu hết các phần, nó có vẻ như bạn hiểu Big-O, vì vậy tôi sẽ sử dụng đó như là dự đoán tốt nhất của bạn. Theo dõi nó với một số điểm chuẩn/hồ sơ để xem những gì chạy nhanh hơn/chậm hơn.

Và, có, số Java docs phải có nhiều thông tin này trong java.util.

0

Độ phức tạp về thời gian và không gian cho các lớp thu thập chính phải tương ứng với cấu trúc dữ liệu đã biết xity. Tôi không nghĩ có bất kỳ điều gì cụ thể về Java, ví dụ: (như bạn nói) tra cứu băm phải là O (1). Bạn có thể xem here hoặc here.

2

Tôi không thể thấy tài nguyên cụ thể này được đề cập ở đây, tôi đã thấy nó rất hữu dụng trong quá khứ. Biết phức tạp của Thy!

http://bigocheatsheet.com/