Основы программирования на С++ для начинающих

Сортировка выбором С++

Смысл Сортировки выбором (Selection Sort) состоит в поиске минимального значения элемента в массиве, и перемещения этого значения в начало массива. Нужно сразу оговориться, что в данном случае можно назвать “началом” массива (куда перемещается найденное минимальное значение).

“Начало” в алгоритме Сортировка выбором с каждым шагом цикла смещается в сторону хвоста массива. Поэтому на первой итерации цикла, найденное минимальное значение меняется местами со значением в нулевой ячейке массива. На второй итерации “начало” уже будет указывать на следующую (первую) ячейку и так далее.

сортировка выбором с++, алгоритм сортировки выбором, для начинающих

По факту получается простой обмен местами значений ячеек массива. При таком обмене значениями не нужен сдвиг (перезапись) всех элементов массива, чтобы записать минимальное значение в соответствующую ячейку. То есть алгоритм Сортировка выбором не требует использования дополнительной памяти. Перезапись значений происходит сразу после нахождения минимального значения в массиве.

Код программы весьма прост, и не требует каких-то особых описаний:

Роль “начала” здесь играет счетчик i внешнего цикла. На каждом шаге значение элемента, номер которого отсчитывает эта переменная, считается минимальным. Вложенный  цикл проводит проход по хвосту массива, вычисляя номер ячейки массива с минимальным значением (строка 18 – тернарный оператор).

Если после прохода вложенным  циклом переменная min не изменилась, значит из всего хвоста массива, который обрабатывается, минимального значения нет, и элемент “начала” остается на своем месте. Иначе –  значение меняется местами с найденным.

сортировка выбором с++, алгоритм сортировки выбором, для начинающих

Хвост обрабатываемого массива с каждым проходом циклов уменьшается и когда достигнет конца массива, он (массив) окажется уже отсортированным. Работа алгоритма Сортировка выбором прекратится.

Вот отличное короткое видео по информатике с разбором Сортировки выбором (Selection Sort):

Прочтите также наши следующие уроки посвященные алгоритмам сортировки: пузырьковая сортировка и шейкерная сортировка массива.

2 thoughts on “Сортировка выбором С++

Добавить комментарий для Tatiana Tverdokhlebova Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *