Приложение Java проводит большую часть времени, сортируя некоторые ключи и удаляя дубликаты.Выбор хорошего алгоритма сортировки
Поэтому выбор адаптированного алгоритма сортировки является обязательным.
Ключи представляют собой целые числа (около 256 бит, но необязательно), а размеры массива составляют от 1000 до 100000 ключей.
Входные массивы состоят из последовательных групп клавиш. Эти группы уже отсортированы и малы (около 10 ключей).
Образец массива (3 группы, 32bits ключи):
0x01000000
0x01010000
0x01010100
0x01010101
0x01000000
0x01010000
0x01010100
0x01010102
0x01000000
0x01020000
0x01020200
0x01020203
После сортировки и удаления дубликатов:
0x01000000
0x01010000
0x01010100
0x01010101
0x01010102
0x01020000
0x01020200
0x01020203
Любой жесткий? Есть идеи ? Любая ссылка?
Благодаря
PS: после просмотра алгоритмов сортировки, включая множество вариаций сортировки слиянием, поразрядной сортировки, кви ... Я продолжаю копать вокруг хэш-карт.
PPS: наконец, я разветвил сортировку Java-наследия, добавленную фильтрацию и концепцию отсортированных групп. Это обеспечивает отличное ускорение.
Пожалуйста, поделитесь своими мыслями, что у вас есть. Вы что-нибудь пробовали? – dasblinkenlight
Мы не знаем, чего вы не знаете. Вопрос мне кажется прямым. Что вы находите сложным? –
Сортировка 100 000 целых чисел должно быть довольно быстрым. Но что такое «256-битное» целое число? Являются ли эти большие целые числа? – user949300