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