Я думаю, что наиболее разумным является создание массива указателей на bigints и сортировка массива указателей.Я бы предложил какой-то шаблонный быстрый сортир с функцией интеллектуального сравнения.
Функция сравнения должна иметь возможность определять большую часть времени, просматривая самые значимые 4 байта.Если они не совпадают, то сравнение решается.Если они совпадают, то вы просматриваете следующие 4 байта до конца целого.
Я предполагаю, что диапазон данных, вероятно, достаточно большой, что сортировка по основанию будет непрактичной.Быстрая сортировка, как правило, достаточно быстрая, если ваши данные случайные, и производительность кеша превосходит большинство неосновных сортировок.