на стр 6, лекции 3, Очевидно "Ck <= модуль(Gk(е))*b(k+1)" (1) - , подскажите что значит "модуль" и почему это очевидно... |
Объединяемые приоритетные очереди
Операция УМЕНЬШИТЬ_КЛЮЧ. Ключ узла , находящегося в дереве в позиции , уменьшается на положительное число . Это действие может нарушить кучеобразный порядок лишь таким образом, что уменьшенный ключ узла будет меньше ключа его родителя. Уменьшение ключа может быть проведено в несколько этапов.
От исходной кучи отрывается подкуча с корнем в узле . Оставшаяся куча не обязательно будет левосторонней. Затем ключ узла уменьшается на заданное число . Куча при этом все еще остается левосторонней.
В куче восстанавливается свойство левизны, как — показано далее. Фактически свойству левизны могут не удовлетворять только узлы, находящиеся на пути от ( — родитель узла ) до корня . Длина этого пути в худшем случае линейно зависит от . Но на самом деле нам нужно проверить только первые не более чем узлов на этом пути. Наконец, куча сливается с за время . Таким образом, время выполнения данной операции — .
Рассмотрим пример. Пусть в куче, изображенной на рис. 5.14, необходимо уменьшить ключ узла от до .
Делается это следующим образом. От исходной кучи отрывается подкуча с корнем в удаляемом узле . Теперь куча не является левосторонней, так как в узле нарушено свойство левизны (рис. 5.15).
Ключ узла уменьшается до 0, куча при этом все еще остается левосторонней (рис. 5.16).
Следуем от узла до корня дерева , для каждого узла этого пути восстанавливаем свойство левизны и ранг. Сначала проверяем узел : его детей надо поменять местами (а фактически — только одного-единственного правого сына сделать левым). После этого вычисляется новый ранг узла : он равен рангу правого сына плюс 1, то есть 1 (так как правого сына нет). Получилось дерево, изображенное на рис. 5.17.
Следующий узел — это родитель узла с ключом . Его потомков тоже необходимо поменять местами (так как ранг левого сына меньше ранга правого). После этого ранг узла с ключом вычисляется как ранг правого сына плюс , то есть . Получается куча, представленная на рис. 5.18.