0

Java アプリケーションは、一部のキーの並べ替えと重複の削除にほとんどの時間を費やします。

そのため、適応したソート アルゴリズムを選択することが必須です。

キーは整数 (約 256 ビットですが、必ずしもそうとは限りません) であり、配列のサイズは 1000 ~ 100000 キーです。

入力配列は、連続するキー グループで構成されます。これらのグループは既にソートされており、小規模です (約 10 キー)。

配列の例 (3 つのグループ、32 ビット キー):

0x01000000
0x01010000
0x01010100
0x01010101

0x01000000
0x01010000
0x01010100
0x01010102

0x01000000
0x01020000
0x01020200
0x01020203

重複をソートして削除した後:

0x01000000
0x01010000
0x01010100
0x01010101
0x01010102
0x01020000
0x01020200
0x01020203

厳しいですか?何か案が ?リンクはありますか?

ありがとう

PS:マージソート、基数ソート、quiの多くのバリエーションを含むソートアルゴリズムを見た後...私はハッシュマップを掘り下げ続けています。

PPS : 最後に、Java レガシー マージ ソートをフォークし、フィルタリングとソートされたグループの概念を追加しました。それは素晴らしいスピードアップを提供します。

4

6 に答える 6