C++ :Самый быстрый способ сортировки списка чисел и их индекса

У меня есть вопрос, который может показаться очень простым, но он в контексте, где "каждый такт процессора имеет значение" (это часть более крупного алгоритма, который будет использоваться на суперкомпьютерах. ).

Проблема довольно проста :как быстрее всего отсортировать список беззнаковых длинных длинных целых чисел и их исходных индексов? (В начале числа unsigned long long int располагаются в совершенно случайном порядке.)

Example :
Before
Numbers: 32 91 11 72
Indexes: 0 1 2 3
After
Numbers: 11 32 72 91
Indexes: 2 0 3 1 

Под «самым быстрым способом» я подразумеваю :какой алгоритм использовать :std ::sort, C qsort или другой алгоритм сортировки, доступный в Интернете? Какой контейнер использовать (C array, std ::vector, std ::map... )? Как одновременно сортировать индексы (с использованием структур, стандартной пары ::, стандартной карты ::... )?

Большое спасибо!

РЕДАКТИРОВАТЬ :сколько элементов сортировать? -> обычно 4 го числа

9
задан Vincent 23 April 2012 в 21:41
поделиться