# Step-by-step: bubble sort (part 897a)

Разложим решение на шаги и объясним, что происходит на каждом из них.

## Задача

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

## Решение

```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) по памяти (без учёта копии).


## Разбор по шагам

1. **Шаг 1. Входные данные.** Проверяем, что приходит в функцию, и какие значения считаются корректными.
2. **Шаг 2. Основной цикл.** Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
3. **Шаг 3. Результат.** Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.

Читая чужой код, повторите тот же мысленный разбор по шагам — это самый быстрый способ научиться.

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

[len(a](https://sway.cloud.microsoft/6umgt1ADK5PNktVf) · [чисел](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-c009ac.pdf) · [python](https://hey.xyz/posts/g6bwd3ggfvrt894p6m) · [самое](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [соответствует](https://sway.cloud.microsoft/kw9GgjgUSrsPuvac) · [всплывает](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/kaymak-gibi-66-seks-hikayeleri-5a005b.pdf) · [считаются](https://stills65009.mataroa.blog/blog/son-and-mother-hentai-free-taboo-anime-manga-galleries/) · [Результат](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [работа](https://pen.absturztau.be/ozd8c0fe/bokep-indo-mentang-mentang-ortu-pergi-kakax-minta-jatah) · [list[int](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [итерации](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/cg-cc3d74.pdf) · [работает](https://drop.xtrafrancyz.net/selif/39dfogzjy1.pdf) · [Входные](https://yakihonne.com/article/naddr1qvzqqqr4gupzp8qfp8x6rcrvnu3z5300tchry0dkmla5v0a3mt2ku74tw2afmrwuqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknjcesv56kgdtx943rwcny956rjepe943rvdpn943xzdm98ycngdtzv43rqgwkqs9) · [каждом](https://jaflysilve.freeflarum.com/d/1136-1136-ero-man-hua-bao-zou) · [Внутренний](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/xdxx-e050bf.pdf) · [алгоритмом](https://sway.cloud.microsoft/TOD9VYRdiltC9nZC) · [времени](https://yakihonne.com/article/naddr1qvzqqqr4gupzq2qykdx787le8vz8fzu40lqlh03dmfsyj7ug9q2ry0am28khg24zqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0ykkxwty8ymkxvp595mrydrz956ryces95ukvceh95mrqdpevscrvef4xdnrsvkk8mp) · [Проверяем](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/music-playing-wallpaper-7e13ea.pdf) · [каждой](https://rentry.co/gallery-572268) · [случаи](https://paste2.org/gdIxKnwH)

