Сортировка
Это расположение данных в памяти ЭВМ в регулируемом виде по их ключам. При обработке данных важно знать информационное поле данных и размещение их в машине. Различают внутреннюю и внешнюю сортировку. Внутренняя – это сортировка в оперативной памяти. Внешняя - сортировка во внешней памяти. Если сортируемые записи занимают большой объем памяти, то их перемещение требует больше времени. Для уменьшения затрат используют метод сортировки таблицы адресов. Производится перестановка указателей , сам массив не перемещается. При сортировке могут встречаться одинаковые ключи данных , в этом случае одинаковые ключи желательно расположить в том же порядке , что и в исходном файле. Эфективность сотировки определяется: 1 временем затраченным на сортировку 2 объемом оперативной памяти 3 временем затраченным на написание программы. Порядок числа сравнений при сортировки определяется в пределах от O(nlogn) до O(n2). Сортировки классифицируются:
1 строгие
2 улучшенные методы сортировки
Сортировка методом прямого включения.
Элементы мысленно делятся на готовую последовательность аn…..1. При каждом шаге элементы увеличиваются на еденицу, а в готовой увеличиваются. Т.е. итый элемент извлекается из исходной последовательности и перекладывается в готовую последовательность, при этом он вставляется на нужное место среди элементов готовой последовательности.
10,3,11,8,2,15,44,9
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
10 |
3,11,8,2,…9 |
2 |
3,10 |
11,8,2,…9 |
3 |
3,10,11 |
|
4 |
3,8,10,11 |
8,2,15,44,9 |
5 |
2,3,8,10,11 |
2,15,44,9 |
6 |
2,3,8,10,11 |
15,44,9 |
7 |
2,3,8,10,11,15 |
44,9 |
8 |
2,3,8,9,10,11,15,44 |
|
В данной сортировке на первом шаге элемент 10 является началом готовой последовательности. Элементы сравниваются с первым элементом готовой последовательности и занимают свое место справа или слева от первого элемента.
Эффективность сортировки прямого включения.
Если последовательность отсортирована в нужном порядке, томаксимальное число сравнений может возникнуть на итовом шаге и определяется по фОРМУЛЕ Сmax =I – 1 Cmin=1 Если равновероятны все перестановки, то среднее число сравнений определяется:
Cср=i/2
Если массив отсортирован в обратном порядке то число сравнений определяется по формуле:
Cmax=n(n-1)/2 Данный случай является наихудшим. Количество перестановок определяется как: Cmax + 3(n-1)
Имеетсяпоследовательность 42,7,12,32,35,7 Отсортировать в порядке возрастания, определить максимальное число сравнений.
шаг |
Готовая последовательность |
Исходная последовательность |
1 |
42 |
7,12,32,35,7 |
2 |
7,42 |
12,32,35,7 |
3 |
7,12,42 |
32,35,7 |
4 |
7,12,32,42 |
35,7 |
5 |
7,12,32,35 |
7 |
6 |
7,7,12,32,35 |
- |
7 |
|
|
8 |
|
|
Cmax=i-1=6-1=5
Имеется последовательность: 12,4,18,24 отсортировать в порядке убывания, определить количество перестановок.
шаг |
Готовая последовательность |
Исходная последовательность |
1 |
|
12,4,18,24 |
2 |
|
4,18,24 |
3 |
|
,18 |
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
Имеется последовательность 4,9,43,52,17,20,76 отсортировать в порядке возрастания, определить Cmin сравнений.
шаг |
Готовая последовательность |
Исходная последовательность |
|
4 |
9,43,52,17,20,76 |
|
4,9 |
43,52,17,20,76 |
|
4,9,43 |
52,17,20,76 |
|
4,9,43,52 |
17,20,76 |
|
4,9,17,43,52 |
20,76 |
|
4,9,17,20,43,52 |
76 |
|
4,9,17,20,43,52,76 |
- |
Cmin=1
Имеется последовательность 13,99,15,32,9,68,102 отсортировать в порядке возрастания, определить сисло перестановак и максимальное число сравнений.
шаг |
Готовая последовательность |
Исходная последовательность |
|
13 |
99,15,32,9,68,102 |
|
13,99 |
15,32,9,68,102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|