На этом шаге мы рассмотрим метод балансировки.
При проектировании некоторых алгоритмов приходиться идти на различные компромиссы, т.е. по возможности сбалансировать вычислительные затраты на использование различных частей алгоритмы. Метод балансировки рассматривается как балансировка деревьев. Дерево - важная структура данных, применяемая для хранения, обработки и предоставления информации. Дерево состоит из элементов, обычно называемых вершинами или углами, и связей между вершинами, называемыми дугами, ребрами или ссылками. Среди вершин выделяется одна, которая называется корнем. Она является родительской по отношению к другим связанным с ней вершинам. Все вершины, связанные с корнем дугами, называются потомками. Каждая вершина в дереве, кроме корня, имеет точно одну родительскую вершину и больше потомков. Дерево имеет два свойства:
В компьютерных науках часто используются деревья, в которых все вершины содержат ограниченное число потомков (не более двух).
Если это число 2 (0,1,2), то такие деревья называются бинарными. Если у вершины два потомка, то дерево делится на левое поддерево и правое. Различают идеальные и вырожденные деревья.
Идеальное дерево - дерево, в котором все вершины располагаются на k уровнях: корень - на 1-м, две вершины на 2-м, четыре - на 3-м. Новая вершина может быть помещена только на k+1 уровень.
Вырожденное дерево - дерево, которое представляет собой линейный список элементов, упорядоченных по возрастанию или убыванию информационных полей.
Критерий качества дерева - это длина самой длинной ветви. На единицу от этого значения отличается количество уравнений дерева, т.е. его высота (на единицу меньше). Деревья минимальной высоты имеют максимальное количество вершин на одном уровне. Таким образом хорошие с точки зрения поиска и вставки вершины - это деревья минмальной высоты. Они имеют минимальное количество вершин на каждом уровне.
Метод балансировки - метод позволяющий не допустить слишком плохих деревьев.
Суть: дерево называется сбалансированным, если высота hl левого поддерева и высота hr правого поддерева для каждой вершины отличаются не более чем на единицу. Лучшие из сбалансированных деревьев являются идеальными. При включении новой вершины в дерево может (но не обязательно) увеличиваться высота одного из деревьев.
Возможно 3 ситуации.
На следующем шаге мы рассмотрим метод Лагранжевых релаксаций.