# Two ways to solve bubble sort

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

## Задача

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

## Решение

```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://pastebin.com/cTTWR7Uk) · [Задача](https://yakihonne.com/article/naddr1qvzqqqr4gupzqyzgzy2ehaxsscusja0yqdy0544mgdlvmmxcxxvreg7w8f6jm2rzqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszrthwden5te0dehhxtnvdakqzynhwden5te0danxvcmgv95kutnsw43qqtr8v9kxcetj0yknyctxxgursv3s95mrxvp5956xxwph94snxdt994jrzctr8qcrxcf4vg6rgnhe996) · [list[int](https://leahmartin912.overblog.fr/2026/11/teamrussia.html) · [Отсортировать](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-168el-1d7i) · [копии](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-owga6-4o5l) · [скорости](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/event-8f7b89.pdf) · [времени](https://posts.workshop-hub.workers.dev/factorial-shagi-2) · [сравнить](https://avdc.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/event-be10b4.pdf) · [одинаковых](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-bb4an-4op6) · [библиотеку](https://dev.to/devnote2319/keeping-link-blocks-stable-across-platforms-wftry-f09) · [большое](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/znur-g-ven-porn-670932.pdf) · [python](https://kamodik.com.ua/naruto+hentai+tsunade?f=instapaper) · [ручной](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/two-babies-one-fox-full-comic-porn-b47038.pdf) · [range(n](https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/digit-sum-oshibki-mwdtnyhx.md) · [работает](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-ex8x1-55li) · [большинства](https://discuss.tchncs.de/post/65439826) · [Альтернативный](https://newatsapp.altervista.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/kirapregiato-nude-785656.pdf) · [баланс](https://sway.cloud.microsoft/pIw1ikfAjB4XPZpw) · [сокращается](https://posts.workshop-hub.workers.dev/digit-sum-oshibki) · [хвост](https://radicle.network/nodes/seed.pipapo.org/rad%3Az2j18SE42XSrNmzCHgF1aDfpAGcUr/issues/921231e391d5bc14bf1690e106391733feffd3a3) · [учебных](https://otvorenepravo.sk/aesthetic+wallpaper+harry+styles?f=instapaper) · [простейшим](https://portfolio90653.mataroa.blog/blog/c36-7f-80a/) · [через](https://rentry.org/smjj-016-565962) · [элементов](https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/imx-to-ams-liliana-681c28.pdf) · [return](https://dev.to/devnote2319/account-pools-for-multi-platform-posting-g7nb2-39hi) · [рекурсию](https://dev.to/devnote2319/logging-pipeline-runs-without-noise-y0hcl-aj) · [лучше](https://ecency.com/@marekbenes6828/post-dd421e) · [Полезно](https://pastebin.com/DMngLNRi)

