Задать вопрос
@AkunaGPT

Может ли такое быть, что менее продвинутый алгоритм сортировки выполняется быстрее?

Почему сортировка Шелла в C++ по моим замерам работает быстрее по времени, чем слияния для сортировки массива из 10 млн элементов? Вроде бы уже на таком размере разница должна быть видна. Я проверял время через <chrono> и <ctime>, а также на онлайн-сервисах, где показано за сколько выполнилась программа. Реализации брал стандартные, буквально с первых страниц в поисковике.
В Python такого не происходит, всё как ожидается. Почему так? Или я что-то не так делаю / понимаю?
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?
Да, конечно может. Почему нет-то? "Продвинутость" алгоритма - понятие довольно абстрактное. Обычно алгоритмы сортировки характеризуются несколькими параметрами: сложность сортировки, скорость, потребляемая память.
Ответ написан
Комментировать
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Разные алгоритмы имеют разные лучшие и худшие случаи. Например, на почти отсортированном массиве сортировка шелла отработает весьма быстро - сильно быстрее сортировки случайного массива. Сортировка слиянием же выполнит примерно одинаковое количество операций для любого массива. Так что можно подобрать даже весьма большой тест, на котором сортировка Шелла обгонит сортировку слиянием.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы