Time and Space Complexity
Урок 7 из 9 курса Быстрая сортировка — серия DSA на Coddy.
Временная сложность:
- Средний случай: O(n log n)
- Сбалансированный опорный элемент (pivot) каждый раз разделяет массив примерно пополам, что дает около log n уровней работы по разделению сложности O(n).
- Худший случай: O(n2)
- Если опорный элемент всегда является самым маленьким или самым большим элементом (например, в уже отсортированном массиве, где последний элемент выбран в качестве опорного), одна сторона каждый раз оказывается пустой, и глубина рекурсии достигает n уровней.
Пространственная сложность:
- O(n) для версии, которую мы создаем здесь, так как на каждом шаге мы создаем новые списки меньшего и большего размера. Классическая in-place (на месте) Quick Sort улучшает этот показатель до O(log n) дополнительного пространства.
Резюме:
- Quick Sort очень быстра в среднем и является основным алгоритмом сортировки на практике.
- Плохой выбор опорного элемента может снизить производительность до O(n2); хорошие стратегии выбора опорного элемента (например, выбор случайного или медианного элемента) позволяют этого избежать.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Быстрая сортировка — серия DSA
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)