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)