コンピュータ科学の教科書で頻繁に議論されている挿入ソート、選択ソート、バブルソートなどのいくつかのソートアルゴリズムです。整数またはオブジェクトの配列が与えられているので、これらのホイールを再び改造するのではなく、配列をソートするために特定のソートアルゴリズムを適用することを選択できるJava 6言語APIが組み込まれていますか? Java 6に組み込まれていない場合は、この機能を実行するオープンソースライブラリがありますか?Java 6ではどのようなソートアルゴリズムが使用できますか?
答えて
Arrays.sort()
のメソッドは、すべてのプリミティブ型配列でクイックソートを使用します。
ソートアルゴリズムはジョンL.ベントレーとM.ダグラス・マクロイの「エンジニアリングソート機能」、ソフトウェアの実践と経験、巻から適応調整されたクイックソート、です。 23(11)P. 1249-1265(1993年11月)。このアルゴリズムは、他のクイックソートを二次的な性能に低下させる多くのデータセットでn * log(n)のパフォーマンスを提供します。
メソッドは、マージソートを使用します。この種類はArrays.sort(Object[])
とArrays.sort(T[], Comparator<? super T>)
でも使用されています。
ソートアルゴリズムは、変更されたマージソートです(下位サブリストの最上位要素が上位サブリストの最下位要素よりも小さい場合はマージが省略されます)。このアルゴリズムは、n log(n)の性能を保証します。この実装は、指定されたリストを配列にダンプし、配列をソートし、リスト内の各要素を配列の対応する位置からリセットします。これにより、リンクされたリストを定位置でソートしようとすることによるn2 log(n)のパフォーマンスが回避されます。
'Arrays.sort(Object [])'もマージソートを使用することに注意してください。答えのどこかでそれを絞ることができれば、私は私のものを取り除くことができました。 –
@Bartありがとう、私はそれを私の答えに加えました。 – Marcelo
Marcelo、乾杯! :) –
あなたは一般的には選択しないでください(とにかく組み込みの仕分けで)。 Collections
クラスはほとんどのニーズに十分に効率的でなければならないsort
メソッドを提供します。
Arrays.sort(int[] a)
は、調整クイックソートを使用します。
Arrays.sort[Object[] a)
は、修正されたマージソートを使用します。
- 1. Javaオペレーティングシステムはどのように使用できますか?
- 2. Java SE 6、Update 121はどのようにダウンロードできますか?
- 3. Javaアノテーションメンバにはどのような型を使用できますか?
- 4. どのようにWinJSをJavaプロジェクトでjavaスクリプトで使用できますか?
- 5. ソートアルゴリズムのファクトリにはどのようなパラメータがありますか?
- 6. のJava EE 6プロデューサーは、私は7のようJBossを使用し、Java EE 6のです
- 7. AntがJavaタスクで使用する完全なコマンドは、どのようにして確認できますか?
- 8. jQueryセレクタではどのような文字が使用できますか?
- 9. pygame.font.Fontでどのようなフォントを使用できますか?
- 10. GitHubをどのようなコードで使用できますか?
- 11. MongoDBでTop-Kソートアルゴリズムがどのように機能するのですか
- 12. MySQLはどのソートアルゴリズムを使用していますか?
- 13. Java。アップキャストタイプのリフレクションはどのように使用できますか?
- 14. StringTemplateのインポートディレクトリはどのように使用できますか?
- 15. GRPCはJava 6でサポートできます
- 16. ノワールのスラッグにはどのような文字が使用できますか?
- 17. 私はこのコードでどのソートアルゴリズムを使用していますか?
- 18. SQLトランザクションはどのように使用できますか?
- 19. C/C++ソースコードとライブラリをJavaでどのように使用できますか?
- 20. Mersenne TwisterをJavaでどのように使用できますか?
- 21. どのようにアンドロイドでprintln javaを使用できますか?
- 22. JRE 6ではJava 5コンパイラでコンパイルできるがJava 6コンパイラではコンパイルできないJavaプログラムスニペットはありますか?
- 23. Javascriptにはどのようなローカルデータベースが使用できますか?
- 24. どのような同期を使用できますか?
- 25. Qt setStyleSheetどのようなフォントを使用できますか?
- 26. ソートアルゴリズムJava
- 27. Javaソートアルゴリズム
- 28. ListViewではなくFlatListでどのように使用できますか?
- 29. SwiftのようなJavaのEnumで関数型を使用できますか?
- 30. この状況では、どのソートアルゴリズムが最適ですか?
これはJava 7とは異なります - http://stackoverflow.com/questions/4018332/is-java-7-using-tim-sort-for-the-method-arrays-sort –
@amcを参照してください。あなたは受け入れられた答えがない48の質問があります。おそらくあなたは答えをフォローアップして受け入れられるかもしれません。 –