# Writing tests for bubble sort (part 8978)

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

## Задача

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

## Решение

```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://stills62315.mataroa.blog/blog/bokep-indo-akhirnya-perjaka-ku-hilang-dengan-pacar/) · [фреймворков](https://otvorenepravo.sk/join/sks+fyn+wjyk?f=linkcentre) · [работы](https://statics.pancake.vn/web-media-264/65/3b/b8/0b/775a7b7bb9d98aff4960279a3f1c37a83c7575744c6133a14dc7b405.pdf) · [случаи](https://meadowline2824.bearblog.dev/) · [сразу](https://ecency.com/@karelnovotn6538/t-rk-e-altyaz-l-vey-anne-pornolar-0f4847) · [памяти](https://blogfreely.net/nataliarussell2/ngintip-mandi-kolam-renang) · [Такой](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/2-080651.pdf) · [быстро](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [работает](https://ecency.com/@lukaskral2261/funnycams-9ec66e) · [копии](https://team.writefreely.dev/oz936174/lizzy-snapgod) · [второй](https://ecency.com/@vojtechurban2724/jelly-bean-brains-nude-1b85f0) · [учебных](https://radicle.network/nodes/seed.cielago.xyz/rad%3Az4EHVJqEY9BpvibXzR7thQ6UPBSMt/issues/50a6a5ea0fbb1dc58946fce9adf9a1f1a0aa0663) · [проверка](https://emmaleroy499.overblog.fr/2026/10/maggie-skyler-omegle.html) · [минимум](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [конец](https://news-ctl-posts.hashnode.dev/walking-through-the-caesar-cipher-part-9649) · [return](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [сортировкой](https://ecency.com/@lukasfiala2580/tanababyxo-onlyfans-14f985) · [Отсортировать](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/milca-saji-spiderman-931568.pdf) · [ломается](https://discuss.tchncs.de/post/65439717) · [вызова](https://paper.wf/maria1994log/kamakurara) · [Сложность](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/alanylons-ad36ed.pdf)

