# Solving and testing bubble sort (part 11cb)

Разберём решение и сразу накроем его тестами — это хороший стиль работы с кодом.

## Задача

Отсортировать список чисел по возрастанию простейшим алгоритмом — сортировкой пузырьком.

## Решение

```python
def bubble_sort(arr: list[int]) -> list[int]:
    a = arr[:]
    n = len(a)
    for i in range(n):
        for j in range(n - 1 - i):
            if a[j] > a[j + 1]:
                a[j], a[j + 1] = a[j + 1], a[j]
    return a


print(bubble_sort([5, 1, 4, 2, 8]))
```

## Как это работает

На каждом проходе самое большое из оставшихся элементов «всплывает» в конец. Внутренний цикл сокращается на `i`, ведь хвост уже отсортирован.

## Пример работы

```text
[1, 2, 4, 5, 8]
```

## Сложность

O(n²) по времени, O(1) по памяти (без учёта копии).


## Проверка тестами

Хорошая привычка — проверять решение сразу на нескольких примерах, включая крайние случаи.

```python
assert is_valid(True) is not None  # базовая проверка вызова
assert is_valid(False) is not None  # и второй случай
```

Такой минимум уже защищает от случайной ошибки при правках кода.

С добавлением проверок решение становится самодокументируемым — сразу видно, что код делает.

**Читайте также:**

[проверок](https://emmakral70.wixsite.com/my-site-1/post/kateeowen) · [python](https://writefreely.ethibox.fr/oze999ae/jelly-bean-brains-leaked-nude-photos-and-videos) · [ошибки](https://marieroux757.overblog.fr/2026/10/v-deo-karely-ruiz-contenido-xxx-caliente-de-la-influencer.html) · [самое](https://p-dir.net.ua/imyujia?f=instapaper) · [стиль](https://yakihonne.com/article/naddr1qvzqqqr4gupzpny4pd5g9kg8x69sdcpx9nqu3fpkwyy5l5pzsr2pzmj07ggsrgzaqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknzce389jkxwrp95ckvctp956xgwry95unjvmr95mxgcf3vgcnzcmzvejngrcesyd) · [тестами](https://yakihonne.com/article/naddr1qvzqqqr4gupzqnfqyz5vjs8nng4gjj9dusa86ps0q5wq7g280k8vmdrpwrxmeephqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkvvfkx93x2ce3943njdpn956rgce395uxvvfh943r2erxvyckxe3kxvcrx2cggnw) · [алгоритмом](https://paper.wf/olga1966log/lembouruine-teen-portraits-sandy) · [чисел](https://discuss.tchncs.de/post/65440320) · [Хорошая](https://blogfreely.net/igorcollins26/nurse-femdom-porn-comic) · [нескольких](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [хороший](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/insomniac-porn-c1c020.pdf) · [список](https://hey.xyz/posts/2tjhvwwqp8y1q1hfbk9) · [return](https://clarasimon847.overblog.fr/2026/10/petek-din-z-porn.html) · [сразу](https://blogfreely.net/nataliarussell2/2-girls-omegle-game-free-video-clips-and-hot-omegle-porn) · [крайние](https://davidzielinski9.wixsite.com/my-site-1/post/yatahagane) · [работает](https://radicle.network/nodes/seed.pipapo.org/rad%3AzLcW7xgpDisttSpAE4F4HqTQ5ESq/issues/fdf998fa4c9c7ce6edf8d328fa89d3b1b939e30d) · [простейшим](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [Такой](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/aryna-sabalenka-nude-photos-5fcdde.pdf) · [кодом](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [Разберём](https://lauradubois753.overblog.fr/2026/10/sana.html) · [учёта](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-ebca7f.pdf) · [Проверка](https://rimworld.gallery/m/random/t/16283) · [времени](https://yakihonne.com/article/naddr1qvzqqqr4gupzp0sk0gg6r6x2cw67sskm4arcavwdh07qcc83e9zdc099m44a53pvqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkzwfsvcekgvry95cnjwtx956rscty95uryc3594nxxcn9xsmrxdmpvvmrqjt3gf2) · [конец](https://drop.xtrafrancyz.net/selif/v6tpntj88z.pdf)

