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