Изменения

Перейти к: навигация, поиск
Нет описания правки
Пример дерева для алгоритма сортировки <tex>n = 3</tex> элементов:
[[Файл:SortTree.png|300px|center|thumb]]
Докажем, что двоичное дерево с не менее чем <tex>n!</tex> листьями имеет глубину <tex>\Omega(n \log n)</tex>. Очевидно, что двоичное дерево высоты <tex>h</tex> имеет не более чем <tex>2^h</tex> листьев (легко доказать по-индукции). Значит, имеем неравенство <tex>n! \le l \le 2^h</tex>, где <tex>l</tex> {{---}} количество листьев. Прологарифмировав его, получим:
<tex> h \geq \log_2 n! = \log_2 1 + \log_2 2 + \ldots + \log_2 n ></tex> <tex>n/2 \log_2 (n/2) = n/2(\log_2 n - 1) = \Omega (n \log n)</tex>
}}
Если алгоритм сортировки является рандомизированным, то для него справедливо, что нижняя граница матожидания времени работы для сортировки сравнениями <tex>n</tex> элементов ровна <tex> \Omega(n \log n) </tex>. Доказательство этой теоремы можно прочесть в Кормене«Алгоритмы: построение и анализ».
==Источники==
81
правка

Навигация