Сортировка выбором / Selection Sort на Python
В предыдуших частях мы говорили о линейном поиске и бинарном поиске.
Сейчас речь пойдет о сортировке выбором, задача которой состоит в следующем: надо так поменять местами элементы массива, чтобы каждый элемент был меньше или равен последующему за ним.
Предположим, у нас есть массив:
Нам надо привести его к виду:
Сначала мы проходимся по всему массиву и находим самый наименьший элемент. Далее мы меняем этот элемент местами с элементом, занимающим индекс 0.
Теперь в массиве первый элемент - наименьшее число.
Затем мы снова проходимся по массиву, начиная уже с 1ого индекса, опять находим наименьшее число и меняем его местами с элементом под индексом 1.
Тоже самое делается для индекса 2, 3 и тд.
Код на Python выглядит следующим образом:
Надеюсь, что вы помните про метод sort(), который и надо использовать для таких задач.
Если раскоментировать принт, то в выводе будет полный пример того, как сортируется наш массив:
По традиции, напишем тесты, чтобы удостовериться, что код хоть немного работает: