- •ОЗВУЧЕННАЯ ПРЕЗЕНТАЦИЯ
- •ТЕМА 5
- •Алгоритм турнирной сортировки основан на повторяющихся поисках наименьшего ключа среди n элементов, среди
- •Второй этап сортировки - спуск вдоль пути, отмеченного наименьшим элементом, и исключение его
- •Элемент, передвинувшийся в корень дерева, вновь будет наименьшим (теперь уже вторым) ключом
- •Пример. Выполнить турнирную сортировку множества: {a1,a2,a3,a4,a5,a6,a7,a8}.
- •Найденный минимальный элемент заменяется на специальный символ М, помещаемый в результирующее множество.
- •АЛГОРИТМ ПИРАМИДАЛЬНОЙ СОРТИРОВКИ.
- ••42 сравнили с 67 и поменяли местами: 44 55 12 // 67 94
- ••Берем верхний элемент пирамиды a[0]...a[n] (первый в массиве) и меняем с последним местами.
- ••Построение пирамиды занимает O(n log n) операций, причем более точная оценка дает даже
- •АЛГОРИТМ ХОАРА БЫСТРОЙ СОРТИРОВКИ (QUICK SORT)
- ••Алгоритм называется вероятностным, если он использует генератор случайных чисел.
- •БЛУЖДАЮЩАЯ СОРТИРОВКА
- •СОРТИРОВКИ ПРОСТЫМ СЛИЯНИЕМ
- ••После выполнения i проходов получаем два файла, состоящих из серий длины 2i. Окончание
- •Для выполнения внешней сортировки методом простого слияния в
- •ЕСТЕСТВЕННОЕ СЛИЯНИЕ
- ••Как и в случае прямого слияния, сортировка выполняется за несколько шагов, в каждом
- ••Число чтений/перезаписей файлов при использовании этого метода будет не хуже, чем при применении
- •МНОГОФАЗНАЯ СОРТИРОВКА
- ••Идея многофазной сортировки состоит в том, что из имеющихся m вспомогательных файлов (m-1)
- ••Предположим, например, что используется три файла B1, B2 и B3, и при начальном
- •Пример начального распределения серий, при котором трехфазная внешняя сортировка не приводит к нужному
- ••Опять для определенности остановимся на первом варианте.
- ••Аналогичные (хотя и более громоздкие) рассуждения
- •При использовании шести вспомогательных файлов идеальными распределениями серий являются следующие:
- •МНОГОФАЗНАЯ СОРТИРОВКА СЛИЯНИЕМ
- •ПРИМЕР МНОГОФАЗНОЙ СОРТИРОВКИ
- •ПРИМЕР МНОГОФАЗНОЙ СОРТИРОВКИ
- •МНОГОФАЗНАЯ СОРТИРОВКА ПРИ СБАЛАНСИРОВАННОМ РАСПРЕДЕЛЕНИИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ ТРЕХ ВСПОМОГАТЕЛЬНЫХ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ ШЕСТИ ВСПОМОГАТЕЛЬНЫХ
- •ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ И ЧИСЛА ФИБОНАЧЧИ
- •ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ И ОБОБЩЕННЫЕ ЧИСЛА ФИБОНАЧЧИ
- •ФАКТИЧЕСКОЕ И ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ЛИТЕРАТУРА
ОЗВУЧЕННАЯ ПРЕЗЕНТАЦИЯ
ДЛЯ ВОСПРОИЗВЕДЕНИЯ ЗВУКА НАЖМИТЕ ЗНАЧОК
ИЛИ
ТЕМА 5
НЕТРИВИАЛЬНЫЕ АЛГОРИТМЫ
СОРТИРОВКИ
АЛГОРИТМ ТУРНИРНОЙ СОРТИРОВКИ. АЛГОРИТМ ПИРАМИДАЛЬНОЙ СОРТИРОВКИ. АЛГОРИТМ ХОАРА
БЫСТРОЙ СОРТИРОВКИ (QUICK SORT), ВЕРОЯТНОСТНАЯ ВЕРСИЯ БЫСТРОЙ СОРТИРОВКИ.
БЛУЖДАЮЩАЯ СОРТИРОВКА (STOOGE SORT). СОРТИРОВКИ СЛИЯНИЕМ.
МНОГОФАЗНЫЕ СОРТИРОВКИ.
ВЫЧИСЛИТЕЛЬНАЯ СЛОЖНОСТЬ АЛГОРИТМОВ СОРТИРОВКИ
Алгоритм турнирной сортировки основан на повторяющихся поисках наименьшего ключа среди n элементов, среди оставшихся n - 1 элементов и т.д. Например, сделав n/2 сравнений, можно определить в каждой паре ключей меньший; с
помощью n/4 сравнений - меньший из пары уже выбранных меньших и т.д. Проделав n - 1 сравнений, можно построить дерево выбора и идентифицировать его корень как наименьший ключ.
Второй этап сортировки - спуск вдоль пути, отмеченного наименьшим элементом, и исключение его из дерева путем замены на пустой элемент (дырку) в самом низу либо на элемент из соседней ветви в промежуточных вершинах.
Элемент, передвинувшийся в корень дерева, вновь будет наименьшим (теперь уже вторым) ключом
Пример. Выполнить турнирную сортировку множества: {a1,a2,a3,a4,a5,a6,a7,a8}.
Выполняется попарное сравнение вершин дерева
Найденный минимальный элемент заменяется на специальный символ М, помещаемый в результирующее множество.
На последующих этапах найденные минимальные элементы помещаются в результирующее множество.
Временная сложность турнирной сортировки O(n log2n).
В массиве, содержащем n = 2k элементов, для выявления наименьшего элемента требуется n-1 сравнений.
2k-1 + 2k-2 + ... + 21 + 1 = n-1
•Дерево обновляется, и оставшиеся n-1 элементов обрабатываются посредством k-1 сравнений вдоль пути, проходящего через родительские узлы. Общее число сравнений равно
•(n-1) + (k-1)*(n-1) = (n-1) + (n-1)*(log2n-1) = (n-1) log2n
•Хотя количество сравнений в турнирной сортировке составляет O(n log2n), использование пустот значительно менее эффективно.
АЛГОРИТМ ПИРАМИДАЛЬНОЙ СОРТИРОВКИ.
• Дан массив из 8 элементов : 44 55 12 42 // 94 18 06 67
•42 сравнили с 67 и поменяли местами: 44 55 12 // 67 94 18 06 42
12 сравнили с max (18, 6) = 18: 44 55 // 18 67 94 12 06 42
55 сравнили с max (67, 94) = 94: 44 //94 18 67 55 12 06 42
44 просеяли сквозь 94, 67 и остановились на 42: //94 67 18 44 55 12 06 42
ПОСТРОЕНИЕ КУЧИ ЗАВЕРШЕНО. ТЕПЕРЬ ЕЕ НУЖНО ОТСОРТИРОВАТЬ.