Изменения

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

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

6 байт убрано, 16:08, 15 января 2021
Другой алгоритм за 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> ===
Анонимный участник

Навигация