Изменения

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

Декартово дерево

Нет изменений в размере, 11:32, 26 ноября 2016
Другой алгоритм за O(n\log n): опечатка
=== Другой алгоритм за <tex>O(n\log n)</tex> ===
Отсортируем парочки <tex>(x_i, y_i)</tex> по убыванию <tex>x_i</tex> и положим их в очередь. Сперва достанем из очереди первый первые <tex>2</tex> элемента и сольем их в дерево и положим в конец очереди, затем сделаем то же самое со следующими двумя и т.д. Таким образом, мы сольем сначала <tex>n</tex> деревьев размера <tex>1</tex>, затем <tex>\dfrac{n}{2}</tex> деревьев размера <tex>2</tex> и так далее. При этом на уменьшение размера очереди в два раза мы будем тратить суммарно <tex>O(n)</tex> время на слияния, а всего таких уменьшений будет <tex>\log n</tex>. Значит полное время работы алгоритма будет <tex>O(n\log n)</tex>.
=== Алгоритм за <tex>O(n)</tex> ===
Анонимный участник

Навигация