Главная » Просмотр файлов » Лекции по информатике

Лекции по информатике (984119), страница 9

Файл №984119 Лекции по информатике (Лекции по информатике) 9 страницаЛекции по информатике (984119) страница 92015-07-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 9)

Если подать этой программе вьппеописапнуго последовательностс из 21 числа, то мы получим двоичное делрево поиска, топология и ординальность которого будут совсем другими: Дерево поиска может быть использовано для упорядочивания данных. Для этого надо разместить эти данные в дереве поиска, а потом составить в результате его обхода упорядоченнукл после;довательность.

Но для решения этой задачи обычное дерево поиска не подходит: оно не допускает вхож Еения равнозначных элементов. Поэтому всякий новый элемент теперь должен быть включен в дерево. Для этого случай х — р".1ееу необходимо рассматривать вместе с одним из других. Если его объединить с х > р .1ееу, то порядок следования элементов с одинаковыми ключами совпадет с хронологией их поступления в дерево.

Возможность сочетания поиска и упорядочивания растущего множества данных,предоставляемая деревом поиска с включениями, дабт новое качество по сравнению 287 с хранением данных как в списках, так и в массивах. Наттример, этим способом можно эс[эфективно решить задачу составления табтлтщы перекрестных ссылок слов текста, [54[. 5.11.2 Исключение из деревьев Перейдем теперь к решению обратной задачи задачи исключения элементов из упорядоченного дерева поиска: необходихкэ найти и исключить из дерева элемент с ключом т,. Если исклточаемая вершина в дереве есть, то опа может быть либо листом, либо внутренней вершиной с одним или с двумя потомками.

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

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

Итак, удаляемый элемент заменяется либо на самый правый элемент его левого полдерева,, либо на самый левый элемент сто правого поддерева, причем эти элементы не могут иметь больше одного потомка, как максимальный и минимальный элементы соответствующих поддеревьев. Все эти случаи предусматривает рекурсивная пропедура де1е1е: ргосес1пге с1е1е1е(х: денег; айаг р: чср); айаг ц: ~чр; ргосес1пге с1сэ1 (атак г: ттр); Ьепш ~т Обработка, случая двут; потпамков утс)алле»той вериисны, — поиск узла без правого ттоддерева )' 11' 'с".г <> ш1 ФЬеп ~т Сущестпсэтутетп элемент больтие данного )' с1е1(Ь".г) 1' Пуэодолглсаем поиск релевантной вершины в отттологичстсктл градиентнсэм направлении эт е1ве Ьеиш ) Нуэюньи) элемент найдспи все полезньсе данные релеванттттсого элемента копируются в узел.

«удаляемого» элемента, после чего уда.ляется тлпп элеметстти отпкуда были взяты г)аинлле эт с) .1сеу;: 1 .1сеу; с) .соппФ: 1 .сспм; с1:-- 1; 1' Глобальной ссьслке присваивается локальный указатель релевантного узла э) $:-- с".1 1' Подаем левого поддерева релевантного узла, если оно есть, на место перемещенного элемента с ие.лью устранения. разрыва в дереве поиска э~ епс1 епс1; 1'с)е13 Ь ерш 1сЫе1еэс 11' р <ть ш1 ФЬеп 1' Поиск удаляемого элемента продолэссаетпся эт К х < р 1сс)у ФЬеп с1е1ес6 (х, р . 1) е1яе Ы х > р 1сеу ФЬеп с1е!сге(х, р".г) е1яе Ьеи1п ?' Искл)оне)сие р" ? Ч: Р' Ы с1 .г г)11 ФЬеп ? ??равого поддерева нет„вместо удаленного узла сгпасим корень левого ? р : с1 .1 е1яе М с1 .1 — п11 ФЬеп ? Левого поддерева нет, вместо удаленного узла ставим корень правого ?' рь с1 .г е1яе ? Удаляемая вершина имеет двух потомков.

??оиск самого правого элемента левого поддерева — кандидата но, замещение удаляемой вершины 3 с1е11с1 .1); с11ярояе(с1) ? Удаление самого элемента или кандидата на его замещение, найденного среди потомков ? епс1; епс1; ? деЫе Вспомогательная рекурсивная пропсдура с?е! осу)цествляет рекурсивный спуск вдоль правой ветви левого поддерева элемс'нта с? )', исклк)чаемого из дерс'ва, и заменяет его клк)ч и счетчик на соответствуюгцие значения из самой правой компоненты ? 1 левого поддерева, после чсто динамический объект с? ~ можно уничтожить деструктором с11ярояе ()можно было бы с тем же успехом делать рекурсивный спуск по самой левой ветви правого поддерева удаляемого элемента).

Проиллюстрируем процесс удаления нескольких элементов из дерева поиска. При этом возникают все рассмотренные слу )аи. Проанализируем сложностные оценки алгоритма поиска по дереву с включениями. Во-первых ясно, что получаемое дерево не будет идеально сбалансированным и оценка для числа сравнений 1ок2 и может ухудшиться ~54~. ХЭ;евший случай соответствует вырожденному несбалансированному дереву, сформированному строго возрастающей 1или строго убывающей) последователыюстью элементов, когда каждый ключ присоединяется непосредственно справа 1или слева) от его предшественника,, образуя линейный список с известным нам временем поиска 0(111), 11о этот случай маловероятен: оценка в книге 11.

Вирта [54~ показывает, что среднее время поиска отличается от оптимального на 39%. Таков средний выигрыш от всевозможных усовершенствований структуры дерева гю мере нйкОНЛ1'ния статистики запросОВ на ИОиск. Они ОпраВданы, кОгда числО ВС111пин В дереВе достаточно велико или когда доступ к дереву щ1свалируст над включением элементов. 5.11.3 Сбалансированные деревья Поскольку каждое включение элемента приводит к разбалансировке дерева поиска, а значит, и к ухудшению времени доступа, то возникает мысль об оперативной балансировке дерева после операций вставки. Для упрощения операции восстановления дерева после случайного включения отечественными учеными Г. М.

Адельсоном-Вельским и Е. М. Ландисом было предложено ослабить строгую сбалансированность дерева. Сбалансированным деревом ими было названо такое дерево, высоты поддеревьев каждой из вершин которого отличаются не более, чем на единипу. В честь авторов такие деревья названы ЛИ-1Эерсвьям1ь Идеально сбалансированные деревья также являются ЛЧ1-деревьями.

Это определение щ>иводит к простой процедурс ребалансировки дерева, причем средняя длина пути поиска практически совпадает с его длиной в идеально сбалансированном дереве. 290 В сбалансированных деревьях за время., пропорциональное 0(1о8з и), даже в худшем случае, можно вьшолнить слсл,ующие операции: ° найти вергпину с данным ключом; ° вклк>чить новую вершину с заданным клньчом; ° исключить вершину с указанным ключом.

По теореме Адельсона-Вельского — Ландиса сбалансированное дерево никогда пе будет по высоте превыпзать идеалыю сбалансированное более чем на 45%, независимо от количества вершин. Высота сбалансировашюго дерева с и вершинами 6~(п) находится в пределах 1оД,(п $- 1) ( Ьь(и) < 1.4404 1о8з(п+ 2) — 0.328 Минимум достигается, если дерево идеально сбалансировано, т.

е, при в = 2 — 1. Инь тересно узнать и о максимуме для 6~(п), т, е, о самом плохо сбалансированном дереве максимальной высоты для и вершин. Для построения такого дерева, может быть применена следующая идея: будем строить сбалансированные деревья с минимальным числом вершин ди фиксированной высоты Ь. Дерево с минимальным числом вершин Ть высоты 6 построим ипдукцией по высоте. Тд пустое дерево, а Тд дерево с одной единственной вершиной (база индукции). Для построения Та для 6 ) 1 мы будем брать корень и два поддерева опять же с минимальным числом вершин. Следовательно, зти деревья также относятся к классу Т-деревьев.

Одно поддерево, очевидно, должно быть высотой 6 — 1, а другому позволяется иметь высоту на единицу меныпе, т. е. 6 — 2. Ниже представлены деревья высотой 2, 3 и 4. Т' Тз Поскольку принцип их построения очень напоминает определение чисел Фибоначчи, то мы будем называть такие деревья деревьями Фибоначчи. Их определение более, чем стандартно: 1. Пустое дерево есть дерево Фибоначчи высоты О. 2.

Единственная вершина есть дерево Фибопаччи высоты 1. 3. Если Та ~ и 7),, ~ — деревья Фибоначчи высотой 6 — 1 и 6 — 2, то 7~ = (7ь и х, 7'~ з) также дерево Фибона гни высотой 6. 4. Никакие другие деревья деревьями Фибоначчи нс являются. Число вершин в Ть определяется из такого простого рекуррентного отношения: А~о = 0 % = 1 -~ь = Аь-~ 1-1+ Аь-г Число Я; как раз и будет числом вершин для самых худших случаев (верхний предел 6). 5.11.3.1 Включение в сбалансированное дерево Проанализируем операцию включения в сбалансированное дерево новой вершины. Мы надеемся, что цена этой операции не ухудшит замечательные свойства АУ1.-деревьев. Если наше дерево состоит из корня 1 и левого и правого поддеревьев Ь и Л соответственно, то либо оно идеально сбалансировано и вставка новой вершины углубит одно из поддеревьев на единицу.

Либо вставляемая вершина попадет в более низкое поддерево и улучшит сбалансированность. Е1аконец, при попадании нового узла в более высокое поддерево, АУЬ- сбалансированность дерева нарушится и возникнет необходимость балансировки дерева. Рассмотрим дерево Вершины с ключами 9 и 11 можно вставить, не нарушая сбалансированности дерева. Если бы в дерево поиска сначала, пришло бы число 10, то дерево стало бы односторонним.

Дерево с корнем 8 будет лишь лучше сбалансированным. Включение вершин 1, 3, 5, 7 разбалансируст дерево. С точностью до симметрии существует всего лишь две различные возможности несбалансированности, возникгпей из-за включения. Они отличаются местом возникновения перевеса: с края или в середине дерева. Первый случай — вставка вершины 1 или 3, второй --- 5 или 7: Случай 1 Случай 2 С.луча,й 2 Случай 1 Алгоритм включения и балансировки существенно использует информацию о сбалансированности дерева.

Проверять балансировку по дереву. всякий раз при вклк>чении в него слишком дорого: 0(Х), где М - количество вершин дерева. На другом полюсе - хранение в каждой вершине показателя сбалансированности разности высоты правого и левого поддерева, принимающего значения в диапазоне ~ — 1„.11~ — в эти же два бита можно упаковать и три перечислимых балансировочностных значения. 293 Процесс балансировки заключается в вертикальном «подтягивании» одного или двух поддеревьев путем манипуляций ссылками на потомков в вышестсящих вершинах, релевантных для восстановления баланса. Среди этих манипуляций такие: подчинение корня левому поддереву и переподчинение внука, выравнивающее баланс, и подьем на два уровня внутреннего полдерева, включение в которое привело к несбалансированности.

Характеристики

Тип файла
DJVU-файл
Размер
675,15 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6310
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее