# Two ways to solve bubble sort (part 6cbb)

У большинства учебных задач есть минимум два честных решения — сравним их.

## Задача

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

## Решение

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


## Альтернативный подход

Ту же задачу часто решают иначе: например, через рекурсию вместо цикла или через стандартную библиотеку вместо ручной реализации. Альтернатива обычно короче, но первое «ручное» решение лучше показывает механику работы алгоритма. Полезно написать оба и сравнить на одинаковых тестах.

Оба подхода рабочие; важно понимать цену каждого, а не копировать первый попавшийся.

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

[работает](https://paste.rs/ibQaS) · [самое](https://dev.to/valentina_silvaferreira_/rieshaiem-i-tiestiruiem-shifr-tsiezaria-59g) · [рекурсию](https://hinditrendz.in/%E8%A2%81%E5%90%88%E8%8D%A3+%E3%83%8C%E3%83%BC%E3%83%89?f=linkcentre) · [тестах](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/sieve-razbor-mvfo6cvp.md) · [каждого](https://dev.to/valentina_silvaferreira_/rassmatrivaiem-klassichieskuiu-zadachu-provierka-anaghramm-geg) · [Задача](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-1701cb.pdf) · [range(n](https://blogfreely.net/nataliarussell2/starrymomoko-q79b) · [элементов](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/10/zyneru-twitter-d11963.pdf) · [одинаковых](https://sway.cloud.microsoft/4LCCBKYPElEVQyuh) · [Сложность](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/event-400a1c.pdf) · [механику](https://drop.xtrafrancyz.net/selif/uzbxglfa90.pdf) · [подхода](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/power-dva-sposoba-mvfobxrb.md) · [часто](https://www.sfahba.com/wp-content/uploads/event-manager-uploads/event_banner/2026/10/gojo-in-geto-fantasy-480p-562cbf.pdf) · [Внутренний](https://jaflysilve.freeflarum.com/d/4164-4164-memichhelle) · [ручной](https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/10/dexxa-geometry-dash-96cad1.pdf) · [Отсортировать](https://portfolio22548.mataroa.blog/blog/noxie-clown-costume-petite-brunette-pornstar-photo-gallery/) · [задач](https://gal18271.carrd.co/) · [времени](https://kappa.lol/FEKYrI) · [оставшихся](https://dev.to/valentina_silvaferreira_/nieskolko-rieshienii-rieshieniia-prostoi-zadachi-chisla-fibonachchi-48da) · [возрастанию](https://juliaroux932.overblog.fr/2026/10/post-10.html)

