/
disciplina
/
stepik-python-debugging
Обзор
Документация
Войти
/
disciplina
/
stepik-python-debugging
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
practice/Module 4/4.4 timeit/bubble_sort_pure.py
44 строки
2 KB
Sergey
Расписан COURSE.MD, добавлены практические примеры
17 мар 2026, 21:33
17 мар 2026, 21:33
9c33d3b
Код
Авторство
О чём код?
import sys import random def bubble_sort(arr: List[int]) -> List[int]: """ Сортировка пузырьком (Bubble Sort). Алгоритм проходит по списку несколько раз, сравнивая соседние элементы и меняя их местами, если они расположены в неправильном порядке. Временная сложность: O(n²) """ n = len(arr) # Создаем копию списка, чтобы не изменять оригинал result = arr.copy() # Внешний цикл - количество проходов for i in range(n): # Флаг для оптимизации: если на проходе не было обменов, список отсортирован swapped = False # Внутренний цикл - сравнение соседних элементов for j in range(0, n - i - 1): # Если текущий элемент больше следующего, меняем их местами if result[j] > result[j + 1]: result[j], result[j + 1] = result[j + 1], result[j] swapped = True # Если не было обменов, список уже отсортирован if not swapped: break return result if __name__ == "__main__": N: int = int(sys.argv[1]) if len(sys.argv) > 2 else 10000 print("Bubble sort pure") print(f"Will produce {N} elements") data: list[int] = list(range(N)) random.shuffle(data) sorted_data = bubble_sort(data)