Сортировка методом прямого выбора.
В данной сортировке так же используется 2 последовательности: готовая и исходная. Основное отличие состоит в том, что вставляемый элемент помещается в конец готовой последовательности, при этом он не сравнивается с другими элементами последовательности. Это возможно за счет того, что среди элементов исходной последовательности выбирается минимальный, если сортируют данные по возрастанию. Если по убыванию, то максимальный элемент. Минимальный элемент на I шаге будет больше элемента на I -1, поэтому его смело можно располагать в конец последовательности, найденный минимальный элемент меняется местами с первым элементом исходной последовательности, в результате чего исходная последовательность уменьшается на 1 элемент.
Пример: 10,3,11,8,2,15,44,9
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
2 |
10,3,11,8,15,44,9 |
2 |
2,3 |
10,11,8,15,44,9 |
3 |
2,3,8 |
10,11,15,44,9 |
4 |
2,3,8,9 |
10,11,15,44 |
5 |
2,3,8,9,10 |
11,15,44 |
6 |
2,3,8,9,10,11 |
15,44 |
7 |
2,3,8,9,10,11,15 |
44 |
8 |
2,3,8,9,10,11,15,44 |
- |
Пример: имеется последовательность 4,7,12,52,9,60,11. Отсортировать в порядке возрастания.
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
4 |
7,12,52,9,60,11 |
2 |
4,7 |
12,52,9,60,11 |
3 |
4,7,9 |
12,52,60,11 |
4 |
4,7,9,11 |
12,52,60 |
5 |
4,7,9,11,12 |
52,60 |
6 |
4,7,9,11,12,52 |
60 |
7 |
4,7,9,11,12,52,60 |
- |
Пример: 23,17,5,19,47,99,3,14
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
3 |
23,17,5,19,47,99,14 |
2 |
3,5 |
23,17,19,47,99,14 |
3 |
3,5,14 |
23,17,19,47,99 |
4 |
3,5,14,17 |
23,19,47,99 |
5 |
3,5,14,17,19 |
23,47,99 |
6 |
3,5,14,17,19,23 |
47,99 |
7 |
3,5,14,17,19,23,47 |
99 |
8 |
3,5,14,17,19,23,47,99 |
- |
Пример: 19,8,15,3,14,27,8,4. Убывания.
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
27 |
19,8,15,3,14,8,4 |
2 |
27,19 |
|
Т.к. в условии имеется 2 одинаковых элемента (8), то программа выдаст ошибку.
Эффективность алгоритма сортировки прямого выбора.
C=n*(n–1)/2. Число перестановок: mmin=3*(n-1); mmax=3*(n-1)+c.
Пример: Последовательность 9,0,16,24,14. В порядке возрастания. Определить минимальное число перестановок.
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
0 |
9,16,24,14 |
2 |
0,9 |
16,24,14 |
3 |
0,9,14 |
16,24 |
4 |
0,9,14,16 |
24 |
5 |
0,9,14,16,24 |
- |
Mmin=3*(5-1)=12
Пример: 12,1,7,16,28,40,88,4,19. По возрастанию. Максимальное число перестановок.
Шаг |
Готовая последовательность |
Исходная последовательность |
1 |
1 |
12,7,16,28,40,88,4,19 |
2 |
1,4 |
12,7,16,28,40,88,19 |
3 |
1,4,7 |
12,16,28,40,88,19 |
4 |
1,4,7,12 |
16,28,40,88,19 |
5 |
1,4,7,12,16 |
28,40,88,19 |
6 |
1,4,7,12,16,19 |
28,40,88 |
7 |
1,4,7,12,16,19,28 |
40,88 |
8 |
1,4,7,12,16,19,28,40 |
88 |
9 |
1,4,7,12,16,19,28,40,88 |
- |
Mmax=3*(9-1)+36=60