Python. Задача 8-20
Отсортировать массив целых чисел, введенных пользователем, методом "пузырька".
Суть алгоритма сортировки методом "пузырька" в следующем: начиная с первого элемента просматриваются все элементы списка. В случае, если текущий элемент больше следующего, то между ними производится обмен позициями. По завершению такого прохода наибольший элемент оказывается на последнем месте. На втором проходе сравнение элементов начинается заново, исключая сравнение с последним элементом, который уже наибольший. На каждом последующем проходе поиск начинается с начала, но количество сравнений уменьшается на один. Когда все проходы будут закончены список будет отсортирован. Если за какой-либо проход не было сделано ни одного обмена позициями, то список оказывается отсортированным и дальнейшие проходы совершать нет необходимости.
# Количество элементов списка
N = 10
# Вводим список
a = []
for i in range(N):
a.append(int(input('Введите элемент ' + str(i + 1) + ': ')))
print('Список до сортировки')
print(a)
for i in range(N - 1):
# устанавливаем флаг, считаем, что перестановок не будет
flag = True
for j in range(N - i - 1):
if a[j] > a[j + 1]:
a[j], a[j + 1] = a[j + 1], a[j]
# Произошла перестановка, сбрасываем флаг
flag = False
if flag:
# Не было перестановок
break
print('Список после сортировки')
print(a)