Module (72%)
Section (50%)

Сортировка списка

Сколько проходов нам нужно, чтобы отсортировать весь список?

Решаем эту проблему следующим образом: вводим другую переменную; ее задача - наблюдать, производился ли какой-либо обмен во время прохода или нет; если замены местами нет, то список уже отсортирован, и больше ничего делать не нужно. Мы создаем переменную с именем swapped и присваиваем ей значение False, чтобы указать, что замены местами нет. В противном случае ему будет присвоено True.

my_list = [8, 10, 6, 2, 4] # list to sort for i in range(len(my_list) - 1): # we need (5 - 1) comparisons if my_list[i] > my_list[i + 1]: # compare adjacent elements my_list[i], my_list[i + 1] = my_list[i + 1], my_list[i] # If we end up here, we have to swap the elements.

Вы должны уметь читать и понимать эту программу без каких-либо проблем:

my_list = [8, 10, 6, 2, 4] # list to sort swapped = True # It's a little fake, we need it to enter the while loop. while swapped: swapped = False # no swaps so far for i in range(len(my_list) - 1): if my_list[i] > my_list[i + 1]: swapped = True # a swap occurred! my_list[i], my_list[i + 1] = my_list[i + 1], my_list[i] print(my_list)

Запустите программу и протестируйте ее.


Code

{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×