我有一个看起来非常基本的问题,但它是在“每个 CPU 滴答计数”的上下文中(这是将在超级计算机上使用的更大算法的一部分)。
问题很简单:对 unsigned long long int 数字及其原始索引列表进行排序的最快方法是什么?(一开始,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 数组、std::vector、std::map...)?如何同时对索引进行排序(使用结构、std::pair、std::map...)?
要排序多少个元素?-> 通常是 4Go 的数字