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

Кухня Python 3 "Сортировка списка методом пузырька"

Оглавление

Что же собой представляет сортировка методом пузырька? Это ни что иное, как самое из простейших упорядочиваний массива(списка) по возрастанию/убыванию. Сейчас мы и попробуем сварить данный алгоритм на Python.

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

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

Python 3

Алгоритм метода пузырька

PyCharm по вкусу

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

1. Создайте простейший список, назовем его ListNumber и выведете его в консоль.

ListNumber = [315,41,21,3,77,9,6,7,63,2,99]

print("Не отсортированный список ",ListNumber)

2. Для дальнейшего приготовления алгоритма нам понадобиться два цикла, первый из которых будет от 1 до количества элементов, второй(вложенный) будет от 1 до количества элементов -1-i.

for i in range(len(ListNumber)):
____for j in range(len(ListNumber)-1-i):

3. Во второй цикл вложите условие сравнения текущего числа с последующим. Именно для этого мы указывали во вложенном цикле до количества элементов -1. И, если условие удовлетворяет нашим требованиям, то перемещаем текущее число на следующую позицию, а следующее число на текущую.

for i in range(len(ListNumber)):
____for j in range(len(ListNumber)-1-i):
________if ListNumber[j] > ListNumber[j+1]:
____________ListNumber[j], ListNumber[j+1] = ListNumber[j+1], ListNumber[j]

Пояснение: Прелесть Python в том, что нет необходимости создавать отдельную переменную(buf), как это происходит во многих языках программирования. Достаточно указать с левой стороны что хотите заменить, а в правой на что хотите заменить.

4. Выведите полученный результат.

print("Отсортированный список ",ListNumber)

Если Вы хотите отсортировать список по убыванию, то достаточно изменить знак в условии на "<" if ListNumber[j] < ListNumber[j+1]

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

ListNumber = [315,41,21,3,77,9,6,7,63,2,99]
print("Не отсортированный список ",ListNumber)
for i in range(len(ListNumber)):
____for j in range(len(ListNumber)-1-i):
________if ListNumber[j] > ListNumber[j+1]:
____________ListNumber[j], ListNumber[j+1] = ListNumber[j+1], ListNumber[j]
print("Отсортированный список ",ListNumber)

-2
-3