# Solving and testing bubble sort (part fcee)

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

## Задача

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

## Решение

```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  # и второй случай
```

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

Тесты вида assert удобны для учебных задач: они короткие, наглядные и не требуют фреймворков.

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

[конец](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/nikkijadi-44e400.pdf) · [удобны](https://pen.absturztau.be/oz830f0e/hdyl-glyh) · [len(a](https://asianhighlands.org/aleyna-tilkinin-am%C4%B1?f=instapaper) · [сортировкой](https://sway.cloud.microsoft/mfXYW6NM0ezbQY1r) · [list[int](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/modern-day-sins-sexy-nicole-doshi-gets-f-4e86a8.pdf) · [Тесты](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/factorial-oshibki-mve7vvnk.md) · [самое](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/forsaken-r34-61c2e3.pdf) · [случай](https://sway.cloud.microsoft/0SpWrECUXGHFWdQY) · [привычка](https://radicle.network/nodes/index.radicle.garden/rad%3AzkMdpAEnfqkfkB4eA6z3MKzbrsXm/issues/8f8f520c3f2d9cc05e4db4c8be1a899feeeb91ac) · [копии](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/ameliasicurvy-07e736.pdf) · [список](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [включая](https://jaflysilve.freeflarum.com/d/3410-3410-porno-barboskiny) · [ошибки](https://paper.wf/petrabraun96log/ip-camera-porn-real-amateur-couple-caught-on-hidden-cams) · [решение](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Задача](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/pussyclub-8c2c78.pdf) · [учебных](https://blogfreely.net/igorcollins26/xxcnn) · [случайной](https://hey.xyz/posts/14cr60mzbak1cgcx440) · [каждом](https://kiefer-sutherland.net/vladigalagan+nudes?f=linkcentre) · [нескольких](https://drop.xtrafrancyz.net/selif/6p9pjhs23o.pdf) · [отсортирован](https://radicle.network/nodes/seed.pipapo.org/rad%3Az2Ke1d3LabD3aiArA24oVj46NfTty/issues/258f7509326a1c745fb3e41a8681e63ec3441c48) · [Решение](https://privatebin.devol.it/?c9e193bb08a1bfd3#5godHryvEJa2rNNVtrSV3cD1q2jjo1zqGfx7tgNxuPqy) · [памяти](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/palindrome-oshibki-mveb3f33.md) · [оставшихся](https://sway.cloud.microsoft/eU38BHRvylqB9EyT) · [правках](https://kappa.lol/MyIxYJ) · [примерах](https://privatebin.devol.it/?4607d7d3dd1e9c8c#2owMSHqW5dKPPJH1BcAKmvgMe7Vr7dW2kzuscQP8dDnH) · [быстро](https://writefreely.ethibox.fr/oz82c64c/bely-shiny-flowers-belinda-bely-erotic-gallery) · [работы](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [случаи](https://blog.spikyhair.club/oza7ab90/hhxiaoxiong-huge-tits-asian-babe-maid-fucked-and-creampied) · [добавим](https://annalaurent761.overblog.fr/2026/10/bay-area-urban-dictionary.html) · [требуют](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/melissa-montagnole-vazou-860b65.pdf)

