java/AndroidでCollection.sort(Array<objectX>, Comperator<objectX>)
を使用しています。Collection.sortがどのように実装されていますか?
私のコンパネーターでは、IDを使って2つのオブジェクトを比較します。
この並べ替えがどのように行われたかをどのように知ることができますか? (quicksort、mergesort ...)?
java/AndroidでCollection.sort(Array<objectX>, Comperator<objectX>)
を使用しています。Collection.sortがどのように実装されていますか?
私のコンパネーターでは、IDを使って2つのオブジェクトを比較します。
この並べ替えがどのように行われたかをどのように知ることができますか? (quicksort、mergesort ...)?
技術的には、使用するアルゴリズムは指定されていません(言い換えれば、実行時ライブラリ固有)。 the documentationから
:
例えば、
sort
が使用するアルゴリズムはマージソートである必要はありませんが、それは安定でなければなりません。
実際には、リストの長さなどに基づいて、通常は1つのソート手法が選択されます。Sun/Oracleの標準実装では、挿入ソート(長さが7未満の場合)と、そうでなければソートをマージします。
Java 7では、TimSortと呼ばれる(もっと複雑ではありますが)もっと素晴らしいものを使用しています。 –
ああ。知っておくといい。 :-D – aioobe
http://stackoverflow.com/questions/732522/how-do-you-compare-2-items-in-a-ジェネリック・リスト –