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