Изменения

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

Двоичная куча

484 байта добавлено, 21:03, 6 июня 2013
Построение кучи за O(N)
Также можно обобщить на случай <tex> d-</tex> кучи <tex>(d- </tex> куча это куча в которой не 2 потомка, а <tex> d </tex> потомков). Все операции, которые делались над бинарной кучей, допустимы и для <tex>d</tex> - кучи. Посчитаю время построения <tex> d</tex> - кучи. В этом случае время работы будет <tex > N \cdot d\ \cdot </tex> <tex dpi ="160"> {\sum_{i = 1}^H \limits}\frac{i}{d^i} .</tex>
Здесь появился множитель <tex> d </tex> из-за того, что поиск минимума в sift_down происходит за <tex> d </tex>.  Аналогичным образом посчитаю ряд <tex dpi = "150"> {\sum_{h = 1}^\infty \limits}\frac{h}{d^h} </tex><tex dpi = "160"> \frac{n}{d^n} = \frac{1}{d} \cdot \frac{n - 1}{2 ^{n - 1}} + \frac{1}{d^n} </tex>{\sum_{h = 1}^\infty \limits}\frac{1}{d^h} </tex> это сумма бесконечной убывающей прогрессии ее сумма равна <tex dpi = "160"> \frac{\frac{1}{d}}{1 - \frac{1}{d}} = \frac{1}{d - 1} </tex> Время работы <tex> O(N \cdot d) </tex>
== Источники ==
668
правок

Навигация