メインのJavaデータ構造とそれぞれの時間の複雑さ(追加、検索、削除などの特定の操作の場合)の概要を含むWebサイトの参照を誰かに教えてもらえますか?例:Hashtable
sは検索用のO(1)であり、LinkedList
sはO(n)です。メモリ使用量などの詳細もいいでしょう。
これは、アルゴリズムのデータ構造を考えるのに非常に役立ちます。
Javaの実装が(複雑さの点で)一般的な言語に依存しない実装とは異なると考える理由はありますか?言い換えれば、さまざまなデータ構造の複雑さに関する一般的なリファレンスを参照するだけではどうでしょうか。
ただし、Java固有を主張する場合:
JavaコレクションのチートシートV2 (リンク切れですが、 これはチートシートの最初のバージョンです )
最も包括的なJavaコレクションの概要はこちら
ここで言及されているこの特定のリソースを見ることができませんでした。過去に非常に役立つことがわかりました。あなたの複雑さを知ってください!
私は非常に便利だと思いました コレクションフレームワーク ページ、特に コレクションフレームワークの概要 、ここではすべてのインターフェイス/クラスが簡単に説明されています。残念ながら、big-O情報はありません。
これを概説しているウェブサイトは1つもないと思います(プロジェクトにとっては良いアイデアのように聞こえますが)。問題の一部は、各アルゴリズムがどのように実行されるかを理解することが非常に重要であるということだと思います。ほとんどの場合、Big-Oを理解しているように思われるので、それを推測として使用します。ベンチマーク/プロファイリングでフォローアップして、何がより速く/より遅く実行されるかを確認します。
そして、はい、 Java docs は、この情報の多くをJava.util
に含める必要があります。