Изменения

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

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

11 байт убрано, 19:29, 29 мая 2012
Худшее время работы
==Асимптотика==
===Худшее время работы===
Обозначим худшее Предположим, что мы разбиваем массив так, что одна часть содержит <tex>n - 1</tex> элементов, а вторая {{---}} <tex>1</tex>. Поскольку процедура разбиения занимает время <tex>\Theta(n)</tex>, для времени работы за <tex>T(n)</tex>. Получим рекуррентное получаем соотношение :
<tex>T(n) = \max(T(q)+T(n-q-1))+\Theta(n)</tex>, где <tex>0 \leq q \leq n-1</tex>, так как мы разбиваемся на 2 подзадачи.
Предположим, что Поскольку <tex>T(n) = \leq cTheta(n^2)</tex>. Тогда получим, имеем
<tex>T(n) \leq \max(cq^2+c= T(n-q-1)^2)+\Theta(n) = cMax\sum\limits_{k=1}^{n} \Theta(q^2+k) = \Theta(n-q-\sum\limits_{k=1)}^2{n} k)+= \Theta(n^2)</tex>.
ЗаметимМы видим, что при максимально несбалансированном разбиении время работы составляет <tex>q^2+(n-q-1)^2</tex> принимает максимальное значение на концах интервала [0; n-1], что позволяет нам сделать оценку <tex>Max(q^2+(n-q-1)^2) \leq (n-1)^2</tex> Подставим это в наше выражение для <tex>T(n)</tex> <tex>T(n) \leq cn^2 - c(2n-1) + \Theta(n) \leq cn^2</tex> Таким образом <tex>T(n) = O(n^2)</tex>. В частности, это происходит, если массив изначально отсортирован.
===Среднее время работы===
Анонимный участник

Навигация