Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Common mistakes in 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) по памяти (без учёта копии).
- Частые ошибки
- 1. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
- 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
- 3. Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
- Если решение заработало с первого раза — всё равно сверьтесь со списком ошибок: половина багов рождается при доработках.
- View Full Gallery → https://go.cbrop.com/prse
- Related:
- https://pastebin.com/zYSEnhbB
- https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/word-count-tests-mwe2yt35.md
- https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/is-prime-razbor-mwdxlox2.md
- https://kappa.lol/Uszgtt
- https://blogfreely.net/sarah-yakovlev/yengesini-sikiyor-turk
Advertisement
Add Comment
Please, Sign In to add comment