私はJavaでスプレイツリー(挿入、検索、削除操作)を実装しました。アルゴリズムの複雑さがO(logn)かどうかを確認したいと思います。入力値(ノード数)を変更し、実行時間を秒単位でチェックすることでこれを確認する方法はありますか? 1000,100000のような入力値を入れ、実行時間をチェックするか、他の方法がありますか?Javaでスプレイツリー操作の複雑さをチェック
答えて
厳密に言えば、n
のいくつかの値に対してアルゴリズムを実行すると、アルゴリズムの複雑さがわかりません。値n_1, n_2, ..., n_k
を実行したとします。アルゴリズムはn
のいずれか大きい値のための任意のn <= max(n_1, ..., n_k)
と正確10^100
操作のためのn^2
操作を行った場合、それはあなたが持っているポイントから次のようになりますにもかかわらず、一定の時間複雑性を有します。
しかし、サイズn
の入力で完了するのに必要な操作の数を評価することができます(後者は厳密な正式な定義があるので、ここでは時間の複雑さと呼んでいません) n
であり、比率は、T(n1)/T(n2)
とn1/n2
です。しかし、実際のアルゴリズム(たとえそれが最初の段落で説明された病理学的なケースではないという意味で)であっても、入力の "構造"に注意する必要があります(例えば、ピボットとして最初の要素は、ランダムな入力のための平均O(n log n)
で実行されるので、あなたは、異なるサイズのランダムな配列を生成する場合には、O(n log n)
ようになります。しかし、それは逆にソートされた配列のためのO(n^2)
時間)で実行されます。
実際の視点からは十分に速いのか、アルゴリズムの一般的な入力がどのように見えるかを知る必要がある場合は、さまざまなサイズの入力を試してみると実行時間がどのように伸びるか。あなたは数学的な意味での実行時にバインドする必要がある場合
はしかし、あなたが数学的に自分のアルゴリズムのいくつかのプロパティと境界を証明する必要があります。
あなたの場合、私はランダムな入力をテストすることは合理的なアイデアであると言います(1つの操作の時間複雑さがスプレイツリーの場合はO(log n)
であるという数学的証明があるので)。あなたが実装したツリーは確かに正しいスプレイツリーです。 1つの注意:入力が「ランダム」である限り、バランスのとれていないツリーでもかなり高速に動作できるため、さまざまなパターンのクエリ(並べ替え/逆順で要素を挿入するなど)を試すことをおすすめします。
- 1. グラフ操作アルゴリズムの複雑さ
- 2. 複雑なリスト操作
- 3. rでの複雑な日付操作
- 4. 複数の操作の全体的な複雑さ?
- 5. nedtrieでの検索操作の複雑さ(ビット単位のトライ)
- 6. 固定サイズのヒープ上での操作の複雑さ
- 7. Swiftでの文字列操作の複雑さ
- 8. 複雑なオブジェクトを操作する
- 9. 日付の複雑な配列操作
- 10. 複雑なDTOのCRUD操作
- 11. Clojureの複雑なデータ操作
- 12. 操作セット(list())の複雑さは何ですか?
- 13. GroupBy操作の漸近的な複雑さは何ですか?
- 14. RandomAccessFile Java - 複雑さ
- 15. 複雑な二次インデックス操作
- 16. Pythonセット操作の時間の複雑さ?
- 17. JavaコレクションaddAllの複雑さ
- 18. R:複雑なリストの要素を関数で操作する
- 19. 操作の複雑さはどこで確認できますか?
- 20. Android - ソケット経由で複雑なオブジェクトを操作する方法
- 21. PHPでの複雑な文字列操作
- 22. 複雑な要素単位の操作をオクテット
- 23. Java ArrayListのコンストラクタの複雑さ
- 24. Javaで指定されたレベルの複雑さを持つメソッドのテストでコードカバレッジをチェックする方法
- 25. Javaの単純なアプリケーション複雑さ
- 26. 時間の複雑さ(Java、Quicksort)
- 27. Javaクラスはチェックされていない操作または安全でない操作を使用します
- 28. 操作の複雑さがファイル名を変更していますか?
- 29. 時間ツリーマップの複雑<>操作(GET)とのsubMap()
- 30. スタックとキューの実装における操作の時間の複雑さ
これをチェックする http://stackoverflow.com/questions/19617468/program-to-fnd-time-complexity-of-a-java-program – Kranthi
これは私の質問とは異なる@Kranthi – user7064921