Я создал два проекта. Один на C ++ и один на Java. Я провел испытания на время для QuickSort и SelectionSort для обоих. Как ни странно, я обнаружил очень странное поведение.
Вот результаты для массива размером 10 000:
SelectionSort Java: 80 мс
SelectionSort C ++: 2914 мс
QuickSort Java: 1 мс
QuickSort C ++: ~ 45 секунд
Назовите меня сумасшедшим, но меня всегда учили, что QuickSort - самый быстрый. Это подтверждается в Java, но в C ++ он полностью отключается.
Итак, мой вопрос: работает ли C ++ с QuickSort по-разному?
Я пытался сохранить одинаковые функции между языками, и они точно такие же, за исключением использования вектора в C ++ и массива int. Я бы предпочел использовать вектор в любом случае, потому что для фактического проекта, для которого я хочу использовать сортировку в C ++, требуется вектор.
Я уверен, что это глупая ошибка или что-то, что я делаю, но, пожалуйста, поделитесь почему это происходит.
РЕДАКТИРОВАТЬ:
Мне кажется, я понимаю, в чем проблема. Спасибо всем за очень быстрые ответы. Я' буду модифицировать свой код, чтобы он работал как задумано. Я знал, что это простая ошибка. Кроме того, хотя заданный вопрос довольно смущающий, ответы носят образовательный характер.