КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Анализ пирамидальной сортировкиПусть дерево массива на нижнем (нулевом) уровне содер-жит максимальное число вершин. Для построения пирамиды из произвольного дерева (первая часть алгоритма) обработать все вершины, начиная с первого уровня. Для обработки вершины на i-том уровне число сравнений пропорционально i. Число вершин на i-том уровне равно 2[log2N]-1 , а всего уревней m=[log2N], следовательно общее число сравнений определяется формулой 1*2[log2N]-1 + 2*2[log2N]-2 + … +m*2[log2N]-m = O(N). Во второй части алгоритма последовательно обрабатывают-ся с N, N-1, … ,2 вершинами. Число сравнений для перестройки дерева, состоящего из i вершин, в пирамиду пропорционально [log2i], следовательно общее число сравнений [log2N]+[log2(N-1)]+…+[log22] = O(N*log2N). Т.о. порядок функции ВС алгоритма пирамидальной сорти-ровки O(N*log2N). Быстрая сортировка выбором.Улучшить сортировку выбором можно, если после каждого прохода получать больше информации, чем просто идентификация минимального элемента. Пример:
10 – элемент MaxInt. k1*(N-1) – количество просмотров; log 2 N – высота бинарного дерева. Мы проходим от корня к листу по тому пути, по которому шел минимальный элемент (шаг 2). Затем осуществляем модификацию бинарного дерева. Общее количество модификаций: k2*log 2 N * (N-1). Алгоритм быстрой сортировки выбором:
|