
- •Структура данных и ее классификация.
- •«Дерево», его классификация, примеры, способы перемещения
- •«Хэш-таблицы»
- •Способы реализации «хэш-функций»
- •Разрешение коллизий
- •Алгоритмы и свойства
- •Рекурсия
- •«Разделяй и властвуй», «Ханойские башни»
- •Динамическое прогриммирование
- •Сортировка
- •Выбор, вставка, пузырьки и Шелла
- •По указателях и индексам, распределяющего подсчета
- •Быстрая сортировка
- •Слияния
- •Очередь по преоритету
- •Пирамидальная сортировка
- •Порязрядная сортировка
- •Алгоритм поиска
- •Суть последовательно, бинарного и интерполяционнного поиска
Очередь по преоритету
Пирамидальная сортировка базируется на обработке такой структуры данных как очередь по приоритету.
Очередь по приоритету – это структура данных, в которой элементы имеют ключ и вставляются в конец набора данных, а удаляются элементы с наибольшим значением ключа.
Применение: системы планирования заданий (ключ представляет собой значение приоритета).
Реализация операций вставки и удаления очень сильно зависят от представления набора данных: упорядоченный или неупорядоченный, в виде массива или связанного списка.
Неупорядоченное представление определяет «ленивый» подход к решению задачи удаления элемента (когда выполнение работы откладывается до необходимого момента).
Упорядоченное представление – «энергичный» подход (когда заранее выполняется необходимый объем работ, чтобы обеспечить максимальную эффективность реализации операции удаления).
Сортирующее дерево – это совокупность узлов с ключами, образующими полное пирамидально упорядоченное
бинарное дерево, представленное в виде массива.
Полное пирамидально упорядоченное бинарное дерево – это структура, в которой каждый узел содержит ключ со значением большим или равным значения ключей узлов-потомков (ключ в каждом узле дерева меньше или равен ключа узла, который является родителем данного узла).
При формировании такого дерева выдерживается следующий порядок:
1. Создается корневой узел
2. Спускаясь вниз, перемещаются слева направо, добавляя каждому узлу предыдущего уровня по два узла текущего уровня.
Пирамидальная сортировка
Метод пирамидальной сортировки
Суть – реализация операции вставки и удаления основаны на методе нисходящей установки (сортировка выполняется без создания дополнительной структуры – очереди по приоритету; построение сортирующего дерева выполняется прохождением в обратном порядке).
Каждая позиция массива рассматривается как корень небольшого дерева и два потомка это узла (два поддерева) представляют собой сортирующие деревья.
Изначально просмотр сортируемого массива данных начинается с половины и далее просматривается массив в обратном порядке.
Порязрядная сортировка
Каждый ключ представляется в двоичном виде. Вместо того чтобы сравнивать 2 ключа, проверяются равны ли 0 или 1 отдельные разряды ключа. Очень напоминает быструю сортировку. Последовательность сортируется по старшему значемому двоичному разряду так, чтобы все ключи начинающиеся с 0 оказались перед всеми ключами начинающимися с 1. Для этого необходимо найти крайний слева ключ Ki начиющийся с 1 и крайний справа ключ Kj начиющийся с 0. После чего Ki и Kj меняются местами и процесс будет повторятся пока не получится i > j. Пусть F0 множество элементов начинающихся с 0, F1 множество всех остальных элементов. Будем к F0 применять поразрядную сортировку(начав теперь со второго бита слева, а не со старшего) до тех пор пока множество F0 полностью не рассортируется. Затем проделаем тоже самое с F1.
Суть- использование метода расспределенного подсчета для сортировки цифр ключей. Для более эффективной работывозможнодобавление сотрировки вставками, если количество оставшихся цифр ключей меньше некоторого установленного значения.