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

26 Билет

Пирамидальная сортировка Идея бинарного выбора может быть эффективно применена, если организовать входные данные в виде так называемой пирамиды (или сбалансированного бинарного дерева поиска) и поддерживать их в этом виде в процессе сортировки. Метод сортировки с использованием такой пирамиды был предложен Р. У. Флойдом в 1964 г. под названием «Heap sort» — пирамидальной сортировки или сортировки кучей.

Свойство пирамиды: Пусть дана последовательность h1, ..., hn. Элемент hi образует пирамиду в этой последовательности, если выполнены следующие условия:1.если 2 × i ≤ n, то hi ≥ h2i и h2i образует пирамиду; 2.если 2 × i + 1 ≤ n, то hi ≥ h2i+1 и h2i+1 образует пирамиду. Элементы hn/2+1, ..., hn всегда образуют тривиальные пирамиды, поскольку для них приведенные условия имеют ложные посылки. Если элемент h1 образует пирамиду, то и каждый элемент последовательности образует пирамиду. В этом случае будем говорить, что вся последовательность является полной пирамидой.

Идея метода пирамидальной сортировки: 1.Подготовка к сортировке: входная неупорядоченная последовательность перестраивается в пирамиду. 2.Сортировка: входная и готовая последовательности хранятся в одном массиве, причем готовая последовательность формируется в хвосте массива, а входная остается в начале массива.

Основой реализации метода является следующая процедура просеивания. Пусть в последовательности h1, ..., hn элементы hi+1, ..., hn уже образуют пирамиды. Требуется перестроить последовательность так, чтобы пирамиду образовывал элемент hi. На каждой итерации цикла наибольший из трех элементов hi, h2×i и h2×i+1 путем обмена оказывается в корне текущего поддерева, что обеспечивает истинность условий пирамиды в этом корне. Если при этом изменяется корень левого или правого поддерева, то просеивание продолжается для него.

Сортировка включением:

Разделим условно все элементы массива на две последовательности: входную ai, ... , аN и готовую последовательность a1, ... , аi-1 элементы которой уже отсортированы.

В алгоритмах, основанных на методе включения, на каждом i-м шаге i-й элемент входной последовательности вставляется в подходящее место готовой последовательности .Сортировка простыми включениями наиболее очевидна. Пусть 2 < i < N, a1, ... , аi-1 уже отсортированы: a1 £ а2 £ ... £ ai-1. Будем сравнивать по очереди аi с ai-1, аi-2, ... до тех пор, пока не обнаружим, что элемент аi следует вставить между aj и aj+1 (0 £ j £ i - 1) элементами. После этого или в процессе поиска подвинем записи aj+1, ..., ai-1 на одно место вправо и переместим запись аi в позицию j + 1.

28 Билет

Если некоторая процедура P содержит явную ссылку на саму себя, то ее называют прямо рекурсивной. Если же P ссылается на другую процедуру Q, содержащую (прямую или косвенную )ссылку на P, то P называют косвенно рекурсивной. Задача особенно удобна для рекурсивного анализа, если она может быть разложена на совокупность подзадач меньшей размерности.

С использованием рекурсивной функции вычисления факториала. Биномиальные коэффициенты также можно вычислить по следующей формуле (число сочетаний из n по k):

г де выражение n! (n-факториал) обозначает произведение всех натуральных чисел от 1 до n. Исходя из соотношений: 0! = 1, n!= n*(n − 1)! (n > 0) можно написать рекурсивную функцию вычисления факториала, а затем использовать ее для вычисления биномиальных коэффициентов по приведенной выше формуле.