# Solving and testing bubble sort (part 2c77)

Посмотрим на задачу глазами разработчика: сначала решение, затем убеждаемся в его корректности.

## Задача

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

## Решение

```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://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/theewildborns-onlyfans-317a93.pdf) · [Хорошая](https://loc.edu/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-2c9b6d.pdf) · [минимум](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [работы](https://sway.cloud.microsoft/pVVEYPzmEDqdCPJB) · [добавлением](https://contracosta.news/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lily-ff37ba.pdf) · [каждом](https://sofiamichel182.overblog.fr/2026/10/d-art-kaiartz.html) · [сокращается](https://paste.rs/Hijry) · [чисел](https://articlescad.com/erome-catarina-paolino-381205.html) · [правках](https://tamelia-stickdesign.de/%E4%BD%93%E8%82%B2%E7%94%9F+%E7%B2%97%E5%8F%A3?f=linkcentre) · [глазами](https://ecency.com/@jannovak1369/veronica-obando-nue-galerie-de-photos-hot-et-sexy-ed2797) · [нескольких](https://drop.xtrafrancyz.net/selif/15i1vctrvl.pdf) · [крайние](https://paste.rs/PpNuC) · [корректности](https://privatebin.devol.it/?a360b8db8b468aa1#CdPqXfuzTSaNepA6rjviaKxLZkcu6cXhXVkMTLmneyy1) · [проходе](https://jaflysilve.freeflarum.com/d/1830-1830-turk-vip-ifsa-unlu-ve-populer-turk-pornolari) · [привычка](https://discuss.tchncs.de/post/65443236) · [проверять](https://statics.pancake.vn/web-media-264/bf/fc/c9/39/120286f8b605935055ff17997e85e0928879ef455936c4f88446493d.pdf) · [простейшим](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [проверок](https://articlescad.com/liweiors1-381028.html) · [возрастанию](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [разработчика](https://sway.cloud.microsoft/HE2MY2agG1bbKKte) · [делает](https://rimworld.gallery/m/random/t/16280) · [Проверка](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/daleseafoam-23ee1e.pdf) · [вызова](https://marieroux757.overblog.fr/2026/10/sexy-pattycake-boho-babe-ii-exclusive-photo-gallery-on-bunkr.html) · [сначала](https://hey.xyz/posts/3qf7m1zrg56kvasrzsq) · [учёта](https://radicle.network/nodes/seed.pipapo.org/rad%3AzPCTyPXdGDoKRa4HoSz9G7V2vEoo/issues/723d489cfedb23c644b5b44b98a0a2561006113f) · [конец](https://paper.wf/clara1996log/lu-ge-zi-chen-shan-jiao-shi) · [list[int](https://paper.wf/dianabraun04log/gay-furry-porn-comics-may-the-best-man-win) · [Такой](https://kappa.lol/fhg9BJ) · [пузырьком](https://artofhosting.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/lunadlight-onlyfans-leak-9e28e7.pdf)

