Сортировка std::vector<int> в порядке возрастания

Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.

Короткий ответ

Что ответить на собеседовании

Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.

Подробный разбор

Ответ с пояснениями

Условие

Отсортировать переданный вектор целых чисел в неубывающем порядке, используя стандартный алгоритм std::sort из библиотеки STL.

void sortMe(std::vector<int> data) {
    std::sort(data.begin(), data.end());
}

Ответ

Чтобы отсортировать исходный вектор, передавайте его по неконстантной ссылке. В текущей сигнатуре сортируется локальная копия, которая уничтожается при выходе.

#include <algorithm>
#include <vector>

void sortMe(std::vector<int>& data) {
    std::sort(data.begin(), data.end());
}

Результат имеет неубывающий порядок; дубликаты допустимы. Число сравнений O(n log n). Если по контракту исходник менять нельзя, оставьте передачу по значению, но верните отсортированный vector вызывающему коду. std::sort не обещает сохранять порядок эквивалентных элементов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее