有很多关于如何在C ++中对多个数组进行排序的问题。答案总是相同的,即使用结构的向量而不是多个数组。不幸的是,由于多种原因(I / O,部分MPI传输,矢量化单元的利用等),我无法做到这一点。此外,由于内存限制,我无法在排序后将结构数组转换为独立数组。我的问题是,是否存在某些高效(n log n)排序算法的C ++实现,可以使用自定义交换(和自定义比较)操作?
(我仍然无法理解为什么STL中缺少这样的选项。显然,很多C ++程序员都在要求它。)
答案 0 :(得分:0)
您可以对数据进行精确排序,但只能对其他数组和自定义比较器进行排序。排序后,您将拥有已排序索引的数组,对于O(n),您可以置换所有数组。