2010-11-22 10 views
1

誰も私にこの文を説明できますか?Javaソートアルゴリズム

ソートアルゴリズムは、( 低いサブリストで最も高い要素が高いサブリストにおける最低 要素より小さい場合、マージが を省略した)修飾 マージです。

リンク:Arrays.sort(Object[] arr)

私は作品をマージ方法を知っているが、私はまだよく理解していません。 ありがとうございます。

答えて

3

Mergesortはソートされたサブリストを再帰的にマージします。マージの対象となる現在のサブリストに重複する要素が含まれていない場合、マージする必要はありません。マージ操作はスキップされます。

例:9最大のAの要素と10(Bの最初の要素)はAの最大の要素よりも大きくなっているされているので

List A 
1 4 8 9 

List B 
10 12 14 19 

これらのリストを比較するプロセスを経るする必要はありません結果はAとBの連結に過ぎません。

包括的な処理が不要な場合は、ショートカットが必要となります。

0

マージソートを実行し、2つのソートされたサブリスト[1, 3, 4][2, 5, 6]をマージしようとしているとします。次に、マージアルゴリズムを実行して、2つの半分を[1, 2, 3, 4, 5, 6]全体にインターリーブします。

[1] + [2] + [3, 4] + [5, 6] = [1, 2, 3, 4, 5, 6] 

しかし、あなたはあなたが[1, 2, 3][4, 5, 6]を持つ二つの半分をソートした後としましょう。下位サブリスト(3)の最高の要素は、上位の下位リスト(4)の下位要素よりも小さい。 2つのサブリストをマージする必要はありません。単純にそれらを連結することができます。

[1, 2, 3] + [4, 5, 6] = [1, 2, 3, 4, 5, 6] 
関連する問題