Анализ реализации с ранговой эвристикой — различия между версиями
| Строка 41: | Строка 41: | ||
Рассмотрим некоторое <tex> x </tex> . | Рассмотрим некоторое <tex> x </tex> . | ||
Разобьем наши ребра на три класса: | Разобьем наши ребра на три класса: | ||
| + | |||
1.Ведут в корень или в сына корня. | 1.Ведут в корень или в сына корня. | ||
| + | |||
2.<tex> R(P(v))>=x^R(v)</tex> | 2.<tex> R(P(v))>=x^R(v)</tex> | ||
| − | 3. Все остальные | + | |
| − | Амортизированная стоимость<tex>S = / | + | 3. Все остальные. |
| + | |||
| + | Назовем класс <tex> T1,T2,T3 </tex> | ||
| + | Амортизированная стоимость<tex> S =\sum_get \limits </tex> | ||
}} | }} | ||
Версия 00:39, 8 марта 2011
Пусть - процедура слития двух множеств содержащих ,, а - поиск корня поддерева содержащего . Рассмотрим операций и операций . Для удобства и без потери общности будем считать принимает в качестве аргументов корни поддеревьев и , то есть заменяем на .
Тогда нам надо оценить стоимость операции . Обозначим - ранг вершины, - отец вершины, - самый первый отец вершины, - количество вершин в поддерева корнем которого является
| Утверждение: |
|
Из того как работает функция get следует: 1. 2. Между и существует путь вида : Записав неравенство из первого пункта вдоль пути из второго пункта следует что |
| Утверждение: |
|
Докажем по индукции: Для 0 равенство очевидное. Ранг вершины стает равным при сливании поддеревьев ранга i-1, отсюда следует: . |
Из второго утверждения следует:
1.
2. Количество вершин ранга
| Теорема: |
Амортизационная стоимость |
| Доказательство: |
|
Рассмотрим некоторое . Разобьем наши ребра на три класса: 1.Ведут в корень или в сына корня. 2. 3. Все остальные. Назовем класс Амортизированная стоимость |