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 遗留的合并排序,添加了过滤和排序组的概念。它提供了很大的加速。