Поскольку вы сортируете только целые числа, radix sort может быть хорошей идеей. Приятной особенностью этого алгоритма является то, что он всегда занимает одинаковое количество времени, которое зависит от количества элементов для сортировки, а не от того, насколько они «не отсортированы».
См. Также Дональда Кнута Искусство компьютерного программирования том 3, Сортировка и поиск . Алгоритм описан в разделе 5.2.5. Сортировка по распределению , начиная со страницы 168. Псевдокод алгоритма: Алгоритм R на странице 172 (номера страниц из второго издания).
Мало того, что алгоритм достаточно эффективен, я также думаю, что его легко понять и реализовать (ну, по крайней мере, для алгоритма сортировки).