Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Алгоритм смешанной сортировки выбором и пузырьком

Доброго времени суток, читатели, зрители моего канала programmer's notes, любители языка Python. Не забывайте подписываться и писать свои
комментарии к моим статьям и видео.

Философия программирования | programmer's notes (python and more) | Дзен
Сортировки на языке Python | programmer's notes (python and more) | Дзен
Алгоритмы на Python | programmer's notes (python and more) | Дзен

Смешанный алгоритм пузырьком и выбором на Python

Вообще сортировка пузырьком имеет множество разновидностей и смесей с другими сортировками. Она легче всего поддаётся внедрению в неё других сортировок. Вот и сейчас рассмотрим её смесь с сортировкой выбором.

Напомним, как происходит сортировка выбором.

0. Пусть i = 0 (временный минимум)

1. Просматриваем массив с элемента i и находим индекс самого маленького элемента j.

2. Обмениваемся элементами i и j.

3. Увеличиваем i на 1. Если получаем индекс последнего элемента, то заканчиваем процесс, если нет, то обращаемся пункту с номером 1.

Алгоритм пузырьковой сортировки напоминать не буду. Попробуем при каждом проходе по списку ("всплывание пузырька") одновременно искать минимальный элемент, как это делается при сортировке выбором.

Получаем следующую программу. Тут важно обратить внимание на переменную min. Она содержит индекс временного минимума. При проходе (внутренний цикл) её значение может меняться, если мы встречаем элемент меньший чем для старого значения min. Одновременно при проходе каждый раз вытаскивается самой большой элемент и ставится на самое старшее место на отрезке прохода. При этом фрагмент, на котором осуществляется проход уменьшается и с лева и справа: i, n - 1 - i.

Текст программы см. ниже
Текст программы см. ниже
primer140.py

Предыдущая статья по сортировке...

Следующая статья по сортировке...

Отличного программирования, друзья. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

"Зато какая сортировка!" А.С. Пушкин
"Зато какая сортировка!" А.С. Пушкин