Анализ реализации с ранговой эвристикой
Версия от 00:31, 8 марта 2011; 192.168.0.2 (обсуждение)
Пусть
- процедура слития двух множеств содержащих , , а - поиск корня поддерева содержащего . Рассмотрим операций и операций . Для удобства и без потери общности будем считать принимает в качестве аргументов корни поддеревьев и , то есть заменяем на .Тогда нам надо оценить стоимость операции
. Обозначим - ранг вершины, - отец вершины, - самый первый отец вершины, - количество вершин в поддерева корнем которого являетсяУтверждение: |
Из того как работает функция get следует: 1. 2. Между Записав неравенство из первого пункта вдоль пути из второго пункта следует что и существует путь вида : |
Утверждение: |
Докажем по индукции: Для 0 равенство очевидное. Ранг вершины стает равным при сливании поддеревьев ранга i-1, отсюда следует: . |
Из второго утверждения следует:
1.
2. Количество вершин ранга
Теорема: |
Амортизационная стоимость |
Доказательство: |
Рассмотрим некоторое Амортизированная стоимость<tex>S = /sum . Разобьем наши ребра на три класса: 1.Ведут в корень или в сына корня. 2. 3. Все остальные |