Короче.
Эффективность алгоритма сортировки зависит от входных данных и задачи.
- максимальная скорость сортировки, которая может быть заархивирована: n * log (n)
- если данные содержат отсортированные субданные, максимальная скорость может быть лучше, чем n * log (n)
- если данные состоят из дубликатов, сортировка может быть выполнена в почти линейное время
- большинство алгоритмов сортировки имеют свое применение
Большинство вариантов быстрой сортировки имеют свой средний регистр и n * log (n), но обычно они быстрее, чем другие не сильно оптимизированные алгоритмы. Он быстрее, когда он нестабилен, но стабильные варианты лишь на несколько медленнее. Главная проблема в худшем случае. Лучшее случайное исправление - Introsort.
Большинство вариантов сортировки слиянием имеют лучший, средний и худший регистр, зафиксированный на n * log (n). Он стабилен и относительно легко масштабируется. НО ему нужно двоичное дерево (или его эмуляция) по отношению к размеру общих элементов. Основная проблема - память. Лучшее случайное исправление - это timsort.
Алгоритмы сортировки зависят также от размера ввода. Я могу заявить новичку, что при вводе данных размером более 10 т нет соответствия для вариантов сортировки слиянием.