Я делал C и наткнулся на сортировку Selection. Я почти уверен, что понимаю это, но просто хочу убедиться. (Пожалуйста, не отмечайте этот вопрос как дубликат только потому, что есть другие вопросы, связанные с сортировкой выбором - это больше для понимания, чем для применения).
Насколько я понимаю (в форме псевдокода):
Циклический просмотр массива чисел: установите первое число как наименьшее. Прокрутите остальные, проверяя каждое новое число до текущего наименьшего. Если новое число ниже, установите его на новое наименьшее значение. После циклического прохождения мы знаем самое низкое значение.
Поменять местами текущий нижний элемент с первым элементом несортированного массива. Теперь это часть «отсортированного» раздела. Пройдитесь по несортированному разделу массива (все, кроме первого элемента), найдите новый самый низкий элемент и назначьте его «самому низкому». Поменяйте местами самый низкий с первым несортированным элементом. Повторение.
for i = 1 to n - 1
min = i
for j = i + 1 to n
if array[j] < array[min]
min = j
if min != i
swap array[min] and array[i]
Дай мне знать, если я куда-нибудь уйду.
Более того, если бы кто-то мог собрать быстрый пример простой сортировки Selection на реальном языке C, это было бы здорово!