Анализ реализации с ранговой эвристикой
Версия от 23:46, 7 марта 2011; 192.168.0.2 (обсуждение)
Пусть union(v1,v2) - процедура слития двух множеств содержащих v1,v2, а get(v) - поиск корня поддерева содержащего x. Рассмотрим n операций union и m операций get. Для удобства и без потери общности будем считать что у нас union принимает в качестве аргументов корни поддеревьев и (m>n), то есть (union(v1,v2) заменяем на union(get(v1),get(v2)). Тогда нам надо оценить стоимость операции get(v). Обозначим
- ранг вершины, - отец вершины, - самый первый отец вершины.Утверждение: |
Из того как работает функция get следует: 1. Записав неравенство из первого пункта вдоль пути из второго пункта следует что 2. Между и существует путь вида : |