Быстрая сортировка против сортировки по выбору (Java против C ++)

Я создал два проекта. Один на 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 ++, требуется вектор.

Я уверен, что это глупая ошибка или что-то, что я делаю, но, пожалуйста, поделитесь почему это происходит.

РЕДАКТИРОВАТЬ:

Мне кажется, я понимаю, в чем проблема. Спасибо всем за очень быстрые ответы. Я' буду модифицировать свой код, чтобы он работал как задумано. Я знал, что это простая ошибка. Кроме того, хотя заданный вопрос довольно смущающий, ответы носят образовательный характер.

8
задан Timlankey 6 May 2011 в 18:17
поделиться