- •ОЗВУЧЕННАЯ ПРЕЗЕНТАЦИЯ
- •ТЕМА 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, и при начальном
- •Пример начального распределения серий, при котором трехфазная внешняя сортировка не приводит к нужному
- ••Опять для определенности остановимся на первом варианте.
- ••Аналогичные (хотя и более громоздкие) рассуждения
- •При использовании шести вспомогательных файлов идеальными распределениями серий являются следующие:
- •МНОГОФАЗНАЯ СОРТИРОВКА СЛИЯНИЕМ
- •ПРИМЕР МНОГОФАЗНОЙ СОРТИРОВКИ
- •ПРИМЕР МНОГОФАЗНОЙ СОРТИРОВКИ
- •МНОГОФАЗНАЯ СОРТИРОВКА ПРИ СБАЛАНСИРОВАННОМ РАСПРЕДЕЛЕНИИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ ТРЕХ ВСПОМОГАТЕЛЬНЫХ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ
- •ИДЕАЛЬНОЕ КОЛИЧЕСТВО СЕРИЙ ПРИ ШЕСТИ ВСПОМОГАТЕЛЬНЫХ
- •ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ И ЧИСЛА ФИБОНАЧЧИ
- •ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ И ОБОБЩЕННЫЕ ЧИСЛА ФИБОНАЧЧИ
- •ФАКТИЧЕСКОЕ И ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
- •ЛИТЕРАТУРА
ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ И ОБОБЩЕННЫЕ ЧИСЛА ФИБОНАЧЧИ
Обобщенные числа Фибоначчи порядка p определяются следующими правилами:
( p ) |
F ( p ) |
F ( p ) |
F ( p ) |
... |
F ( p ) |
, n p |
|
|||
F n |
n 1 |
|
n 2 |
|
n 3 |
|
|
n |
|
|
( p ) |
0 , |
0 n ( p 2 ), |
|
( p ) |
p |
|
|
|||
F n |
|
|
|
|
|
|
F p 1 |
1 |
|
|
Дл |
произвольного |
числа |
N |
|
|
|
||||
вспомогательных |
||||||||||
я |
|
|
|
количество |
серий |
в |
k-й |
|||
последовательностей |
|
|||||||||
последовательности |
на |
уровне |
L |
определяется |
||||||
соотношением: |
|
|
|
|
|
|
|
|
|
|
|
a k ( L ) F |
( N 1) |
|
( N 1) |
|
|
( N 1) |
|
||
|
L N |
F L N 4 ... F |
L k |
|
||||||
|
|
|
3 |
|
|
|
|
|
2 |
|
Количество серий в исходной последовательности: |
|
( N |
1) F |
( N 1) |
( N |
2 ) F |
( N 1) |
|
L N 3 |
|
L N 4 |
... FL( N1 1)
42
ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ N = 6
F F
( 5 ) |
0 , F |
( 5 ) 0 , F |
( 5 ) |
||
0 |
1 |
|
|
2 |
|
( 5 ) |
F ( 5 ) |
F |
( 5 |
|
|
n |
n 1 |
|
) |
|
|
|
|
|
n |
|
|
|
a k ( L ) F L N |
|
|||
|
|
|
2(N 1) |
F |
|
|
|
|
3 |
|
|
0 , F ( 5 ) |
0 , F ( 5 ) |
|
|||
)( 51 |
3 |
|
|
4 |
|
F n( 5 ) F )( 5 |
, n 5 |
||||
n |
4 |
|
n |
|
|
3 |
( N 1) |
|
5 |
( N 1) |
|
F |
L N 4 |
... F |
L k |
|
|
|
|
|
|
2 |
|
Запишем последовательность чисел порядка (N – 1):
0, 0, 0, 0, 1, 1, 2, 4, 8, 16, 31
a |
|
F |
( 5 )(3) |
F |
( 5 ) |
F |
|
( 5 ) |
F |
|
( 5 ) |
F |
( 5 ) |
2 |
|||||
|
|
61 |
|
5 |
|
|
|
|
4 |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
|
4 |
||
a |
|
F |
( 5 )(3) |
F |
( 5 ) |
F |
( 5 ) |
|
F |
( 5 ) |
3 |
4 |
|||||||
|
|
|
|||||||||||||||||
|
|
2 |
5 |
|
|
|
4 |
|
|
|
|||||||||
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
3 |
(3) F ( 5 ) |
F |
( |
5 |
) |
F |
( 5 ) |
6 |
|
|
|
|
|
|||||
a |
(3) F ( 5 ) |
|
|
|
|
4 |
|
4 |
|
|
|
||||||||
4 |
F |
( 5 ) |
|
|
|
|
|
|
|
||||||||||
|
|
6 |
5 |
|
|
3 |
|
|
|
|
|
|
|
|
|
||||
a 5 (3) F6( 5 ) |
2 |
|
|
|
|
|
|
|
|
|
|
43 |
ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ N = 6
a1 (3) 4
a2 (3) 4
a3 (3) 4
a4 (3) 3
a 5 (3) 2
a1 ( 4 ) 8
a 2 ( 4 ) 8
a 3 ( 4 )
7
a5 ( 4 ) a4 4 ( 4 )
6
L |
a1(L) |
a2(L) |
a3(L) |
a4(L) |
a5(L) |
Sum |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
5 |
2 |
2 |
2 |
2 |
2 |
1 |
9 |
3 |
|
|
|
|
|
17 |
4 |
|
|
|
|
|
33 |
5 |
16 |
15 |
14 |
12 |
8 |
65 |
6 |
31 |
30 |
28 |
24 |
16 |
129 |
44
ФАКТИЧЕСКОЕ И ИДЕАЛЬНОЕ РАСПРЕДЕЛЕНИЕ СЕРИЙ
Реальное количество сортируемой
отличатьсяпоследовательностиот идеального.
Если данный факт будет проигнорирован в алгоритме сортировки, основанном на стратегии "сливать до опустошения" (merge- until-empty), то его эффективность будет существенно ниже идеальной.
Для решения данной проблемы используется введение фиктивных (пустых) серий. На их слияние не затрачивается времени. Цель фиктивных серий – обеспечить нужное количество слияний на каждом проходе.
LSum
01
15
29
317
433
5 65
6129
45
ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
13 |
8 |
0 |
10 |
5 |
0 |
5 |
0 |
8 |
5 |
0 |
5 |
0 |
5 |
3 |
0 |
5 |
0 |
3 |
2 |
0 |
|
? |
|
1 |
0 |
2 |
|
|
|
|
|
|
|||
0 |
1 |
1 |
|
|
|
1 |
0 |
0 |
|
|
|
46
ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
13 |
8 |
0 |
13 |
2 |
0 |
5 |
0 |
8 |
11 |
0 |
2 |
0 |
5 |
3 |
9 |
2 |
0 |
3 |
2 |
0 |
7 |
0 |
2 |
1 |
0 |
2 |
5 |
2 |
0 |
0 |
1 |
1 |
3 |
0 |
2 |
1 |
0 |
0 |
1 |
2 |
0 |
47
ПРИМЕНЕНИЕ МНОГОФАЗНОЙ СОРТИРОВКИ БЕЗ УЧЕТА ИДЕАЛЬНОГО РАСПРЕДЕЛЕНИЯ.
13 |
8 |
0 |
7 |
8 |
0 |
5 |
0 |
8 |
0 |
1 |
7 |
0 |
5 |
3 |
1 |
0 |
6 |
3 |
2 |
0 |
0 |
1 |
5 |
1 |
0 |
2 |
1 |
0 |
4 |
0 |
1 |
1 |
0 |
1 |
3 |
1 |
0 |
0 |
1 |
0 |
2 |
48
|
ЗАКЛЮЧЕНИЕ |
В рамках |
данной лекции были рассмотрены |
следующие алгоритмы сортировки: 1.Алгоритм турнирной сортировки. 2.Алгоритм пирамидальной сортировки.
3.Алгоритм Хоара быстрой сортировки (Quick sort), 4.Вероятностная версия быстрой сортировки. 5.Блуждающая сортировка (Stooge sort). 6.Сортировки слиянием.
7.Многофазные сортировки.
© Кафедра вычислительных систем ФГОБУ |
49 |
ВПО «СибГУТИ» |
|
ЛИТЕРАТУРА
1.Вирт Н. Алгоритмы и структуры данных. Новая версия для Оберона / Пер. с англ. Ткачев Ф.В. – М.: ДМК Пресс, 2012 г. – 272 с., 2.Кнут, Д.Э. Искусство программирования: в 3 т. Т. 3. Сортировка и поиск [Текст] : [учеб.
пособие]; пер. с англ. / под общ. ред. Ю.В. Казаченко. - 3-е изд. – М.: Издат.дом "Вильямс", 2010. – 822с.
3.Седжвик Р Алгоритмы на C++ (Algorithms in C++): Пер. с англ. – М.: Издательский дом "Вильямс", 2011 г. – 1056 c. – ISBN 978-5-8459-1650-1, 978-0-321-60633-4;
96