Изменения

Перейти к: навигация, поиск

Быстрая сортировка

64 байта добавлено, 22:34, 7 июня 2014
Нет описания правки
Во избежание достижения опасной глубины рекурсии в худшем случае (или при приближении к нему) возможна модификация алгоритма, устраняющая одну ветвь рекурсии: вместо того, чтобы после разделения массива вызывать рекурсивно процедуру разделения для обоих найденных подмассивов, рекурсивный вызов делается только для меньшего подмассива, а больший обрабатывается в цикле в пределах этого же вызова процедуры. С точки зрения эффективности в среднем случае разницы практически нет: накладные расходы на дополнительный рекурсивный вызов и на организацию сравнения длин подмассивов и цикла — примерно одного порядка. Зато глубина рекурсии ни при каких обстоятельствах не превысит <tex>\log n</tex>, а в худшем случае вырожденного разделения она вообще будет не более 2 — вся обработка пройдёт в цикле первого уровня рекурсии.
== Ссылки Источники информации ==* http[[wikipedia://ru.wikipedia.org/wiki/Быстрая_сортировка Быстрая сортировка|Википедия {{---}} быстрая сортировка]]* http[[wikipedia://en.wikipedia.org/wiki/Quicksort ==Литература==|Wikipedia {{---}} Quicksort]]* ''Т. Кормен, Ч. Лейзерсон, Р. Ривест'': Алгоритмы: построение и анализ глава 7
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: СортировкиСортировка]]

Навигация