Заметки: Эта сортировка намного быстрее сортировки выбором (когда делим пополам всегда). И используется во многих библиотеках (например, метод sort). Но и понять её гораздо сложнее. Тут уже прям придётся вникать. Сложность зависит от выбора опорного элемента. В худшем будет O(n^2). В лучшем и в среднем — O(n logn). Существует ещё сортировка слияниям и она по сложности примерно такая же. Тогда почему быстрая сортировка считается лучше? Разница в константе: O(n) — это на самом деле c*n, где с — фиксированный промежуток времени, который обычно отбрасывается. И тут быстрая сортировка быстрее чем слияние, потому что константа у нее меньше. А почему мы в других сортировках отбрасываем константу? Если сравнивать с бинарной сортировкой, то константа вообще не имеет значения, потому что и без константы гораздо быстрее. Как выглядит сама сортировка:
Грокаем алгоритмы. Быстрая сортировка. Часть 7
23 января 202223 янв 2022
231
~1 мин