Решение модуля 11.8 из курса «Поколение Python: для начинающих»

Показываю разборы с ответами и решениями урока 11.8 для курса «Поколение Python: курс для начинающих». Предыдущий модуль 11.7.

Оптимизируйте приведенный код, реализующий алгоритм пузырьковой сортировки.

a = [17, 24, 91, 96, 67, -27, 79, -71, -71, 58, 48, 88, 88, -16, -78, 96, -76, 56, 92, 1, 32, -17, 36, 88, -61, -97, -37, -84, 50, 47, 94, -6, 52, -76, 93, 14, -32, 98, -65, -16, -9, -68, -20, -40, -71, 93, -91, 44, 25, 79, 97, 0, -94, 7, -47, -96, -55, -58, -78, -78, -79, 75, 44, -56, -41, 38, 16, 70, 17, -17, -24, -83, -74, -73, 11, -26, 63, -75, -19, -13, -51, -74, 21, -8, 21, -68, -66, -84, -95, 78, 69, -29, 39, 38, -55, 7, -11, -26, -62, -84]

n = len(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(a)

Отсортируйте список по возрастанию, реализовав алгоритм сортировки выбором.

a = [78, -32, 5, 39, 58, -5, -63, 57, 72, 9, 53, -1, 63, -97, -21, -94, -47, 57, -8, 60, -23, -72, -22, -79, 90, 96, -41, -71, -48, 84, 89, -96, 41, -16, 94, -60, -64, -39, 60, -14, -62, -19, -3, 32, 98, 14, 43, 3, -56, 71, -71, -67, 80, 27, 92, 92, -64, 0, -77, 2, -26, 41, 3, -31, 48, 39, 20, -30, 35, 32, -58, 2, 63, 64, 66, 62, 82, -62, 9, -52, 35, -61, 87, 78, 93, -42, 87, -72, -10, -36, 61, -16, 59, 59, 22, -24, -67, 76, -94, 59]

# Получаем длину списка
n = len(a)

# Внешний цикл перебирает элементы с конца списка
for i in range(n):
    mx_ind = n - 1 - i  # Предполагаем, что последний элемент - максимальный
    for j in range(n - i):
        # Если находим элемент, который больше текущего максимального
        if a[j] > a[mx_ind]:
            mx_ind = j  # Обновляем индекс максимального элемента

    # Обмениваем последний элемент (a[n-1-i]) с максимальным элементом
    a[n - 1 - i], a[mx_ind] = a[mx_ind], a[n - 1 - i]

# Выводим отсортированный список a
print(a)
Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x