|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[135] Рис. 20.7 Работа процедуры BlNOMIAL-HEAP-ExTRACT-MlN. (а) Исходная биномиальная куча Н. (б) Корневая вершина х, имеющая минимальный ключ, удалена из корневого списка Н. Она была корнем Вд-дерева, а её дети были корнями Bk - i-, Bk-2-, • • • , -Во-деревьев. (в) Обращая порядок, мы собираем потомков вершины х в биномиальную кучу Н. (г) Результат соединения куч Н и Я. Рис. 20.8 Работа процедуры binomial-Heap-decrease-Key. (а) Перед началом цикла (ключ вершины у был уменьшен и стал меньше ключа родительской вершины z). (б) Перед второй итерацией цикла. Произошёл обмен ключами, указатели у и г продвинуты вверх, но свойство порядка пока нарушено, (в) После следующего обмена и сдвига указателей у и г вверх свойство упорядоченности выполнено, и цикл прекращается. ная у содержит единственную вершину, в которой ключ может быть меньше ключей предков, аг - её родителя. Начинается цикл: если key[y] key[z] или если вершина у является корневой, то дерево упорядочено. В противном случае мы меняем местами содержимое вершин у и z, тем самым сдвигая место нарушения вверх по дереву, что отражено в строках 9-10. Процедура Binomial-Heap-Decrease-Key выполняется за время О (lgra), поскольку глубина вершины х есть О (lgra) (утверждение 2 леммы 20.1), а при каждой итерации цикла while мы поднимаемся вверх. Удаление вершины Удаление вершины сводится к двум предыдущим операциям: мы уменьшаем ключ до -оо (специальное значение, про которое мы предполагаем, что оно меньше всех ключей), а затем удаляем вер- шину с минимальным ключом. В процессе выполнения процедуры Binomial-Heap-Decrease-Key специальное значение -оо (единственное в куче) всплывает вверх, откуда и удаляется процедурой Binomial-Heap-Extract- MlN. Binomial-Heap-Delete(#, ж) 1Binomial-Heap-Decrease-Key(#, ж, -оо) 2Binomial-Heap-Extract-Min(H) (В упр. 20.2-6 предлагается переписать процедуру Binomial-Heap-Delete без использования дополнительного значения -оо.) Процедура Binomial-Heap-Delete выполняется за время 0(lg га). Упражнения 20.2-1 Объясните, почему слияние двоичных куч в смысле главы 7 требует времени О (га). 20.2-2 Напишите процедуру Binomial-Heap-Merge. 20.2-3 Нарисуйте биномиальную кучу, которая получается при добавлении вершины с ключом 24 к куче рис. 20.7г. 20.2-4 Нарисуйте биномиальную кучу, которая получается при удалении ключа 28 из кучи рис. 20.8в. 20.2-5 Почему процедура Binomial-Heap-Minimum не годится, если некоторые из ключей имеют значение оо? Как сделать её пригодной и для этого случая? 20.2-6 Не пользуясь специальным значением -оо, перепишите процедуру Binomial-Heap-Delete. (Оценка O(logra) для времени работы должна сохраниться.) 20.2-7 В чём состоит упоминавшаяся связь между соединением биномиальных куч и сложением двоичных чисел? Объясните связь между добавлением вершины в биномиальную кучу и прибавлением единицы к двоичному числу. 20.2-8 Имея в виду соответствие, упомянутое в упр. 20.2-7, перепишите процедуру Binomial-Heap-Insert так, чтобы она добавляла вершину в биномиальную кучу непосредственно, а не вызывала Binomial-Heap-Union. 20.2-9 Покажите, что если располагать вершины в корневых списках в порядке уменьшения (а не увеличения) степеней, то по- |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||