Задание А (Пирамидальная сортировка)
6) Реализовать алгоритм пирамидальной сортировки (англ. Heapsort, «Сортировка
кучей») — алгоритм сортировки, работающий в худшем, в среднем и в лучшем случае
(то есть гарантированно) за ?(n log n) операций при сортировке n элементов.
Количество применяемой служебной памяти не зависит от размера массива (то есть,
O(1)).
7) Сформировать несколько наборов данных (целых чисел) различного объема.
Построить экспериментальный график зависимости времени выполнения кода
программы от объема входных данных.
8) Сопоставить результаты с теоретическими оценками сложности алгоритмов (по
времени исполнения). Сделать выводы о факторах, которых могли повлиять на
точность измерений.
9) Обосновать, что в реализации алгоритма количество применяемой служебной памяти
действительно не зависит от размера сортируемого массива.
10) Сделать выводы.
Задание B (очередь с приоритетами)
Приоритетная очередь это очередь, в которой пажио не то, кто встал последним (порядок
помещения в неё не играет роли), а кто главнее. Более точно, при помещении в очередь
указывается приоритет помещаемого объекта (будем считать приоритеты целыми числами), а при
взятии из очереди выбирается элемент с наибольшим приоритетом (или один из таких
элементов). Реализовать приоритетную очередь так, чтобы помещение и взятие элемента
требовали логарифмического числа действий (от размера очереди).