任何人都可以給我提供一個網站,其中包含主要Java數據結構的摘要以及它們各自在時間上的複雜性(對於某些給定的操作,如添加,查找,刪除等)。 Hashtable
s是O(1)用於查找,而LinkedList
s是O(n)。一些細節,如內存使用情況也會很好。Java數據結構參考
這對於思考算法的數據結構真的很有幫助。
任何人都可以給我提供一個網站,其中包含主要Java數據結構的摘要以及它們各自在時間上的複雜性(對於某些給定的操作,如添加,查找,刪除等)。 Hashtable
s是O(1)用於查找,而LinkedList
s是O(n)。一些細節,如內存使用情況也會很好。Java數據結構參考
這對於思考算法的數據結構真的很有幫助。
有什麼理由認爲Java的實現是不同的(在複雜性方面)比一般的,與語言無關的實現?換句話說,爲什麼不只是指一般參考的各種數據結構的複雜性:
NIST Dictionary of Algorithms and Data Structures
但是,如果你堅持針對Java:
Java standard data structures Big O notation
Java Collections cheatsheet V2(無效鏈接,但this is the first version of the cheatsheet)
我不認爲有任何單一的網站概述這個(聽起來像一個項目,雖然好主意)。我認爲問題的一部分是對每個算法運行的理解非常重要。大多數情況下,這聽起來像你理解Big-O,所以我會用它作爲你最好的猜測。跟隨它進行一些基準測試/分析,看看哪些運行速度更快/更慢。
而且,是的,Java docs應該在java.util
有大部分此信息。
最全面的Java集合概述這裏
+1的大學版頁面 – 2009-08-13 22:14:52
我發現非常有用的The Collections Framework頁面,特別是Outline of the Collections Framework,其中每個接口/類別都被輕鬆描述。不幸的是,沒有大的信息。
我看不到這裏提到的這個特定的資源,我發現它在過去很有用。瞭解你的複雜性!
除了Javadocs? – 2009-08-13 21:30:55
是的,java文檔讓它們全部分開,複雜性不是很容易找到。我不想每個細節,只是一個時間複雜的總結 – 2009-08-13 21:31:52