Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2сем / лаб / ЛР-4.docx
Скачиваний:
0
Добавлен:
04.04.2026
Размер:
47.53 Кб
Скачать

6. Вывод результатов в таблице

print("\nСравнение алгоритмов сортировки:")

print(f"{'Размер':<10}{'Пузырьком (сек)':<20}{'Быстрая (сек)':<20}{'Пузырьком (оп)':<20}{'Быстрая (оп)':<20}")

for i, size in enumerate(array_sizes):

print(f"{size:<10}{bubble_t[i]:<20.5f}{quick_t[i]:<20.5f}{bubble_o[i]:<20}{quick_o[i]:<20}")

Формат вывода:

  • Размер массива

  • Время выполнения для каждого алгоритма

  • Количество операций для каждого алгоритма

Ключевые выводы из кода:

  1. Быстрая сортировка значительно эффективнее на больших массивах

  2. Количество операций растет квадратично для пузырьковой сортировки

  3. Визуализация помогает понять разницу в производительности

  4. Подсчет операций дает дополнительную метрику для сравнения

Этот код полезен для:

  • Понимания разницы между алгоритмами сортировки

  • Сравнения теоретической и практической сложности

  • Демонстрации важности выбора правильного алгоритма

Заключение

В ходе выполнения задания «Реализация алгоритма сортировки и поиска элемента в массиве» я познакомился с двумя ключевыми алгоритмами: быстрой сортировкой (Quick Sort) и бинарным поиском (Binary Search), а также провёл сравнение эффективности пузырьковой и быстрой сортировки.

Основные выводы

1. Сортировка и поиск (Задание 1.1)

 Быстрая сортировка показала себя как эффективный алгоритм для больших массивов (10 000 элементов).  Бинарный поиск успешно нашёл элемент в отсортированном массиве за O(log n) операций. Проверка с помощью сортировки вставками (insSort) подтвердила корректность моей реализации.

2. Сравнение алгоритмов (Задание 1.2)

 Пузырьковая сортировка (Bubble Sort):

  • Простая реализация, но очень медленная на больших данных (O(n²)).

  • Для N = 5000 время выполнения в десятки раз хуже, чем у Quick Sort.

 Быстрая сортировка (Quick Sort):

  • Работает за O(n log n) в среднем случае.

  • На N = 5000 элементов выполняется в 100 раз быстрее, чем Bubble Sort.

  • Количество операций растёт линейно-логарифмически, а не квадратично.

 Графики и таблицы наглядно показали, что:

  • Bubble Sort резко замедляется при увеличении размера массива.

  • Quick Sort остаётся стабильно быстрым даже на N = 5000.

Что я узнал и чему научился?

  1. Как работают алгоритмы сортировки

    • Bubble Sort последовательно сравнивает соседние элементы.

    • Quick Sort использует стратегию «разделяй и властвуй».

  2. Почему бинарный поиск требует сортировки

    • Без упорядоченности массива бинарный поиск неприменим.

  3. Как сравнивать эффективность алгоритмов

    • По времени выполнения (time.time()).

    • По количеству операций (сравнений и перестановок).

  4. Как визуализировать результаты

    • С помощью matplotlib построил графики времени и операций.

Итог

Это задание помогло мне:  Понять разницу между простыми и сложными алгоритмами.  Увидеть, как теория (O-нотация) соотносится с практикой.  Научиться проверять корректность своих реализаций.

Вывод: Quick Sort и бинарный поиск — мощные инструменты для работы с данными, а Bubble Sort полезен только для обучения. Для реальных проектов лучше выбирать эффективные алгоритмы!

Соседние файлы в папке лаб