Особенности работы с АВЛ–деревьями – 1

При работе с большими массивами данных, зачастую используют некоторые сравнительные свойства этих данных для ускорения поиска в таких массивах. Примером может служить сортировка массива чисел (численные данные) для использования бинарного поиска на этом массиве, который, как известно, значительно быстрее, чем линейный.

Суть бинарного поиска представляется как поиск по двоичному дереву, работа с которым зачастую более удобна, нежели работа с массивом. Так как при вставке/удалении элемента приходиться «сдвигать» или «раздвигать» массив, что также иногда неприемлемо, так как быстрым остается лишь поиск по массиву, то есть массив удобен лишь тогда, когда он абсолютно статичен, чего в природе практически не встречается. Еще одним аргументом против линейных массивов является статичность их размеров, что означает сложность работы с ними при произвольном и неограниченном росте объема накапливаемых данных. Примером может служить учет файловых операций на жестком диске или научных открытий. Оба процесса носят почти случайных характер, и их объем ограничен лишь футуристическими предположениями, которые, кстати, если и верны, то на небольшой (по крайней мере, конечный) промежуток времени. Таким образом, хранение данных в массиве может быть очень неудобным, поэтому часто используется представление данных в виде деревьев.

Наиболее простой пример дерева – идеально сбалансированное двоичное дерево. Его идеальность заключается в том, что для каждого узла выполняется условие: количество левых и правых потомков узла совпадает. Такой критерий делает рассматриваемую структуру больше теоретической, чем практически применимой, так как при малейшем изменении в структуре дерева необходимо перестроить почти все дерево, что порой не быстрее, чем работа с массивом, не говоря уже о сложности этой операции. Но, опять же при статичности, идеально сбалансированное дерево дает результат такой же, как при использовании массива, с той лишь разницей, что, если данные все-таки добавляются или удаляются, но достаточно редко, то дерево все же более «поворотливо» в этом плане, так как деревья чаще всего представляются в памяти как динамические структуры и проблем с «раздвижкой», как в массиве, не возникает. Но, как уже отмечалось, из-за жесткости критерия своей идеальности, такие деревья почти всегда теоретические, и на практике применяются редко.


Похожие статьи
Главная » Я_информатика » Особенности работы с АВЛ–деревьями – 1