Быстрая сортировка работает хуже всего, т. Е. При O (n ^ 2), когда все значения выбранной сводной точки являются либо самыми большими, либо самыми маленькими из взятого набора.Рассмотрим этот пример.
1 2 3 4 5
Выбранная опорная точка, скажем, 1, у вас будет 4 элемента с правой стороны от оси, а с левой стороны нет элементов.Применяя эту же логику рекурсивно и шарнирный выбрали, 2, 3, 4, 5, соответственно, мы достигли такой ситуации, когда такого рода была выполнена на его самый неподходящий момент.
1008 * Было рекомендовано и доказано, что Quicksort выполняетхорошо, если вход хорошо перемешан.
Кроме того, выбор вида обычно зависит от четких знаний о входной области.Например, если ввод огромен, то есть нечто, называемое внешней сортировкой, которое может использовать внешнюю память.Если входной размер очень мал, мы можем пойти на сортировку слиянием, но не для средних и огромных входных наборов, так как она использует дополнительную память.Основное преимущество быстрой сортировки заключается в ее значении «на месте», поскольку для входных данных не используется дополнительная память.Его худшее время на бумаге - O (n ^ 2), но все еще широко предпочитается и используется.Моя точка зрения заключается в том, что алгоритмы сортировки могут быть изменены на основе знаний о входном наборе и его предпочтениях.