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

Report a BugSettingsCopy to ClipboardPasteShareDownloadUpload Local FileResetTipTip