Сортировка вектора вещественных чисел (двойной точности) и получение их

В C ++ хотелось бы отсортировать длинный ( 2 ^ 20 ) вектор вещественных чисел , очевидно, что sort () помогает. Раньше я использовал R, я привык к красивой функции order () , которая выдает перестановку, которая приводит к отсортированному вектору.

Пример:

x = {24, 55, 22, 1}

Затем перестановка

perm = {3, 2, 0, 1}

отображает исходный x в отсортированный x в порядке возрастания.

Я, вероятно, смогу реализовать некоторую пузырьковую сортировку, которая не только сортирует x, но и выполняет те же транспозиции вектора {0,1,2, ...} и выводит оба, но я считаю, что кто-то, должно быть, подумал об этом и особенно сделал это эффективно.

6
задан double-beep 9 February 2019 в 18:40
поделиться