Анализ реализации с ранговой эвристикой
Пусть — процедура объединения двух множеств, содержащих и , а — поиск представителя множества, содержащего . Рассмотрим операций и операций (). Не теряя общности, будем считать, что принимает в качестве аргументов представителей, то есть заменяем на .
Оценим стоимость операции . Обозначим — ранг вершины, — представитель множества, содержащего , — отец вершины, — количество вершин в поддереве, корнем которого является .
| Утверждение: |
|
Из принципа работы функции следует:
|
| Утверждение: |
|
Докажем по индукции: Для 0 равенство очевидно. Ранг вершины станет равным при объединении поддеревьев ранга , следовательно: . |
Из последнего утверждения следует:
- .
- Количество вершин ранга .
| Теорема: |
Амортизационная стоимость |
| Доказательство: |
|
Рассмотрим некоторое число . Разобьем наши ребра на три класса:
Обозначим эти классы . Амортизационная стоимость , где означает, что ребро, начало которого находится в , было пройдено во время выполнения текущего . Ребро эквивалентно вершине, в которой оно начинается. В силу того, что получаем: . Во время после прохождения K ребер из второго класса . Из выше сказанного и первого следствия второго утверждения получаем, что: . Для того, чтобы существовал необходимо, чтобы .
Из первого утверждения и в силу использования сжатия путей следует, что cтрого увеличивается при переходе по ребру из . Как максимум через переходов ребро перестанет появляться в классе . Из второго следствия второго утверждения следует: При :
|