Изменения

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

СНМ с операцией удаления за О(1)

34 байта добавлено, 17:54, 6 июня 2015
Идея
== Идея ==
В реализации СНМ с помощью леса корневых деревьев мы не можем нет возможности удалить произвольную вершину из множества за разумное время {{---}} в таком случае нам придется переподвешивать <tex>O(n) </tex> поддеревьев этой вершины. Однако, если вершина является листом, то ее можно удалять совершенно безболезненно.
;Соображение 1 : Пусть мы умеем есть возможность менять произвольные вершины местами за <tex>O(1)</tex>. Тогда для удаления некоторой вершины достаточно поменять ее местами с каким-нибудь листом и удалить этот лист.
;Соображение 2 : Пусть мы умеем есть возможность находить какой-нибудь лист (неважно, какой именно) в дереве за <tex>O(1)</tex>. Тогда, по '''соображению 1''', мы уже умеем удалять произвольный элемент из дерева за <tex>O(1)</tex>.
Все дальнейшие усилия направлены на то, чтобы поддержать эти <tex>2</tex> операции, не испортив при этом асимптотику всех остальных.
Анонимный участник

Навигация