Сортировка «пузырьком»

Опубликовано admin в

обозначим за n длину массива и n раз пройдёмся по нему слева направо, меняя два соседних элемента, если первый больше второго.

Каждую итерацию максимальный элемент «всплывает» как пузырек к концу массива — отсюда и название.

from random import randint
 
N = 10
a = []
for i in range(N):
    a.append(randint(1, 99))
print(a)
 
 
for i in range(N-1):
    for j in range(N-i-1):
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]
 
print(a)

С помощью циклов while:

from random import randint
 
N = 10
a = []
for i in range(N):
    a.append(randint(1, 99))
print(a)
 
i = 0
while i < N - 1:
    j = 0
    while j < N - 1 - i:
        if a[j] > a[j+1]:
            a[j], a[j+1] = a[j+1], a[j]
        j += 1
    i += 1
 
print(a)