e-olymp 2662. Метод минимума

Условие задачи

Массив сортируется методом выбора по возрастанию. Сколько раз меняет свое место первый по порядку элемент?

Входные данные

Первая строка содержит количество элементов в массиве $n$ $\left(1\leqslant n\leqslant1000\right)$. Во второй строке задан сам массив. Гарантируется, что все элементы массива различны и не превышают по модулю $10^9$.

Выходные данные

Вывести количество перемещений первого элемента.

Тесты

Ввод Вывод
1 3

1 3 2

0
2 2

2 1

1
3 4

4 1 5 3

3
4 6

23 5 56 2 87 3

1
5 7
15 1 6 3 9 8 13
4

Код программы

Решение

Применяем метод выбора по возрастанию. Для этого мы ищем наименьший элемент в массиве и перемещаем его на первое место. Затем ищем второй наименьший элемент и перемещаем его уже на второе место после первого наименьшего элемента. Этот процесс продолжается до тех пор, пока в массиве не закончатся неотсортированные элементы. Для того, чтобы найти количество перемещений первого элемента, мы проверяем совпадает ли значение первого элемента со значениями перемещаемых элементов. Также смотрим, чтобы значения этих  элементов не были равны между собой, так как в этом случае сам элемент никуда не сдвигается.

Подробное изложение алгоритма сортировки можно найти в  этой статье .

Ссылки

3 thoughts on “e-olymp 2662. Метод минимума

    • Пожалуйста, сделайте знаки неравенств такими, как в школьных учебниках.
    • Уберите кириллицу из адреса свой работы. Вы же не думаете, что такой адрес удобен — https://cpp.mazurok.com/e-olymp-2662-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%bc%d0%b8%d0%bd%d0%b8%d0%bc%d1%83%d0%bc%d0%b0/?
    • В тексте нужна ссылка на подробное изложение алгоритма сортировки. Можно на эту статью или на какую-то другую на Ваше усмотрение.
    • Почему Вы разметили заголовки как под-подзаголовки h3?

Добавить комментарий