/
disciplina
/
stepik-python-debugging
Обзор
Документация
Войти
/
disciplina
/
stepik-python-debugging
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
master
practice/Module 4/4.4 timeit/bubble_sort_optimize.py
33 строки
985 B
Sergey
Расписан COURSE.MD, добавлены практические примеры
17 мар 2026, 21:33
17 мар 2026, 21:33
9c33d3b
Код
Авторство
О чём код?
import sys import random def bubble_sort_optimized(arr: list[int]) -> list[int]: """ Оптимизированная сортировка пузырьком. Дополнительная оптимизация: запоминаем позицию последнего обмена и в следующем проходе проверяем элементы только до этой позиции. """ result = arr.copy() n = len(result) while n > 1: new_n = 0 for i in range(1, n): if result[i - 1] > result[i]: result[i - 1], result[i] = result[i], result[i - 1] new_n = i n = new_n return result if __name__ == "__main__": N: int = int(sys.argv[1]) if len(sys.argv) > 2 else 10000 print("Bubble sort optimize") print(f"Will produce {N} elements") data: list[int] = list(range(N)) random.shuffle(data) sorted_data = bubble_sort_optimized(data)