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