Может ли такое быть, что менее продвинутый алгоритм сортировки выполняется быстрее?
Почему сортировка Шелла в C++ по моим замерам работает быстрее по времени, чем слияния для сортировки массива из 10 млн элементов? Вроде бы уже на таком размере разница должна быть видна. Я проверял время через <chrono> и <ctime>, а также на онлайн-сервисах, где показано за сколько выполнилась программа. Реализации брал стандартные, буквально с первых страниц в поисковике.
В Python такого не происходит, всё как ожидается. Почему так? Или я что-то не так делаю / понимаю?
Да, конечно может. Почему нет-то? "Продвинутость" алгоритма - понятие довольно абстрактное. Обычно алгоритмы сортировки характеризуются несколькими параметрами: сложность сортировки, скорость, потребляемая память.
Разные алгоритмы имеют разные лучшие и худшие случаи. Например, на почти отсортированном массиве сортировка шелла отработает весьма быстро - сильно быстрее сортировки случайного массива. Сортировка слиянием же выполнит примерно одинаковое количество операций для любого массива. Так что можно подобрать даже весьма большой тест, на котором сортировка Шелла обгонит сортировку слиянием.