В C ++ хотелось бы отсортировать длинный ( 2 ^ 20
) вектор вещественных чисел , очевидно, что sort ()
помогает. Раньше я использовал R, я привык к красивой функции order ()
, которая выдает перестановку, которая приводит к отсортированному вектору.
Пример:
x = {24, 55, 22, 1}
Затем перестановка
perm = {3, 2, 0, 1}
отображает исходный x
в отсортированный x
в порядке возрастания.
Я, вероятно, смогу реализовать некоторую пузырьковую сортировку, которая не только сортирует x, но и выполняет те же транспозиции вектора {0,1,2, ...}
и выводит оба, но я считаю, что кто-то, должно быть, подумал об этом и особенно сделал это эффективно.