Почему для стандартной сортировки выбрана Quick Sort?
Добрый день, достаточно много где (например STL) в качестве стандартной сортировки выбрана сортировка qsort. Вопрос - почему?
Вот статья про сортировки: http://en.wikipedia.org/wiki/Sorting_algorithm
Видно, что, например, пирамидальная сортировка (Heapsort) имеет в худшем случае сложность n*log(n), а qsort все n^2. Так почему же именно qsort?
Она оптимальна для большинства типовых задач. Оптимальна не значит самая быстрая, значит что решает задачу в приемлемое время.
Например:
Timsort — гибридный алгоритм сортировки.
Основная идея алгоритма в том, что в реальном мире сортируемые массивы данных часто содержат в себе упорядоченные подмассивы. На таких данных Timsort существенно быстрее многих алгоритмов сортировки