Я думаю, вам нужно попробовать несколько примеров, чтобы увидеть, что работает лучше всего, поскольку у вас необычный набор условий. Я думаю, что лучшим будет один из
- сортировочная сеть
- сортировка вставок
- быстрая сортировка (один уровень - вставка сортировки ниже)
- сортировка слиянием
Учитывая, что числа с двойной точностью относительно длинные, я подозреваю, что вы не добьетесь большего успеха с помощью сортировки по основанию, но не стесняйтесь добавлять ее.
Для чего бы то ни было, Java использует быструю сортировку по двойникам, пока количество сортируемых элементов не опустится ниже 7, при котором используется сортировка по вставке. Третий вариант имитирует это решение.
Также ваша общая проблема - смущающе параллельна , поэтому вы хотите использовать параллелизм, когда это возможно. Проблема выглядит слишком маленькой для распределенного решения (в сети будет потеряно больше времени, чем сэкономлено), но при правильной настройке ваша задача может очень эффективно использовать несколько ядер.