Найти в Дзене
Kitchen Python 3

Кухня Python 3: "Сортировка выбором"

Оглавление

В этом рецепте мы будем сортировать список чисел методом "Сортировка выбором". Он не настолько сложен в своем исполнении и займет всё приготовление буквально несколько минут.

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

ВНИМАНИЕ: Сервис удаляет начальные пробелы в строках, поэтому приходится использовать символ нижнего подчеркивания вместо каждого пробела. И я буду предоставлять скриншоты общего кода для наглядности

Ингредиенты:

Python 3

Метод сортировки "Сортировка выбором"

PyCharm по вкусу

Приготовление:

1. Создайте список чисел, который мы и будем сортировать

list_number = [2,67,4,5,1,45,13,45,17,19,33]

2. Добавьте цикл по данному списку с использованием enumerate

for ind, numb in enumerate(list_number):

3. Вложите в цикл функцию поиска минимального числа и перестановкой их местами

search_min = min(range(ind, len(list_number)), key = list_number.__getitem__)
list_number[ind], list_number[search_min] = list_number[search_min], numb

-2

Пояснение:

min(range(ind, len(list_number)), key = list_number.__getitem__) - прогоняет цикл от индекса ind до количества элементов list_number.

key = list_number.__getitem__ - берем значение из list_number. То есть поиск минимального значения

list_number[ind], list_number[search_min] = list_number[search_min], numb - меняем местами эти значения.

4. Выведите на экран отсортированный список

print(list_number)

Если вы желаете отсортировать список по убыванию, то поменяйте min на max

search_min = max(range(ind, len(list_number)), key = list_number.__getitem__)

Готовое блюдо:

list_number = [2,67,4,5,1,45,13,45,17,19,33]
for ind, numb in enumerate(list_number):
____search_min = min(range(ind, len(list_number)), key = list_number.__getitem__)
____list_number[ind], list_number[search_min] = list_number[search_min], numb
print(list_number)

-3
-4

-5