12

重複の可能性:
Java配列が異なるタイプに対して2つの異なるソートアルゴリズムを使用するのはなぜですか?

だから私はさまざまなソートの実装に関する配列のドキュメントを読んでいました。私が気付いたのは、一部の実装は調整されたクイックソートを使用し、他の実装は変更されたマージソートを使用したことです。なぜ矛盾があるのですか?

ありがとう!

4

1 に答える 1

25

クイックソートはプリミティブ型の配列に使用され、マージソートはObject[]配列に使用されます。

マージソートが安定しているオブジェクトにマージソートが使用される主な理由-等しい要素を並べ替えません:http://en.wikipedia.org/wiki/Sorting_algorithm#Stability

プリミティブの場合、等しい2つの値を区別できないため、ソートの安定性は無意味です。したがって、クイックソートが使用されます(マージソートが実行されるオブジェクトの配列をソートする場合を除く)。さらに、クイックソートをその場で実行できるため、別のアレイを割り当てる必要はありません。

于 2012-04-20T18:37:45.423 に答える