Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvetu.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
29.7 Кб
Скачать
  1. Очередь по преоритету

Пирамидальная сортировка базируется на обработке такой структуры данных как очередь по приоритету.

Очередь по приоритету – это структура данных, в которой элементы имеют ключ и вставляются в конец набора данных, а удаляются элементы с наибольшим значением ключа.

Применение: системы планирования заданий (ключ представляет собой значение приоритета).

Реализация операций вставки и удаления очень сильно зависят от представления набора данных: упорядоченный или неупорядоченный, в виде массива или связанного списка.

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

Упорядоченное представление – «энергичный» подход (когда заранее выполняется необходимый объем работ, чтобы обеспечить максимальную эффективность реализации операции удаления).

Сортирующее дерево – это совокупность узлов с ключами, образующими полное пирамидально упорядоченное

бинарное дерево, представленное в виде массива.

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

При формировании такого дерева выдерживается следующий порядок:

1. Создается корневой узел

2. Спускаясь вниз, перемещаются слева направо, добавляя каждому узлу предыдущего уровня по два узла текущего уровня.

  1. Пирамидальная сортировка

Метод пирамидальной сортировки

Суть – реализация операции вставки и удаления основаны на методе нисходящей установки (сортировка выполняется без создания дополнительной структуры – очереди по приоритету; построение сортирующего дерева выполняется прохождением в обратном порядке).

Каждая позиция массива рассматривается как корень небольшого дерева и два потомка это узла (два поддерева) представляют собой сортирующие деревья.

Изначально просмотр сортируемого массива данных начинается с половины и далее просматривается массив в обратном порядке.

  1. Порязрядная сортировка

Каждый ключ представляется в двоичном виде. Вместо того чтобы сравнивать 2 ключа, проверяются равны ли 0 или 1 отдельные разряды ключа. Очень напоминает быструю сортировку. Последовательность сортируется по старшему значемому двоичному разряду так, чтобы все ключи начинающиеся с 0 оказались перед всеми ключами начинающимися с 1. Для этого необходимо найти крайний слева ключ Ki начиющийся с 1 и крайний справа ключ Kj начиющийся с 0. После чего Ki и Kj меняются местами и процесс будет повторятся пока не получится i > j. Пусть F0 множество элементов начинающихся с 0, F1 множество всех остальных элементов. Будем к F0 применять поразрядную сортировку(начав теперь со второго бита слева, а не со старшего) до тех пор пока множество F0 полностью не рассортируется. Затем проделаем тоже самое с F1.

Суть- использование метода расспределенного подсчета для сортировки цифр ключей. Для более эффективной работывозможнодобавление сотрировки вставками, если количество оставшихся цифр ключей меньше некоторого установленного значения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]