Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algorithms Visualizer

Демонстрация Комплексная визуализация алгоритмов сортировки и генерации лабиринтов с интерактивным интерфейсом. Проект получил значительное признание в образовательном сообществе - демонстрационные ролики с визуализацией алгоритмов набрали в сумме свыше 25,000 просмотров на YouTube канале и 8,000 на самом популярном, а также более 10,000 на самом популярном в TikTok. Визуальная составляющая и интерактивность проекта доказали свою эффективность в обучении алгоритмам и структурам данных, делая сложные концепции более доступными для понимания.

🎯 Возможности

🔢 Визуализация алгоритмов сортировки

  • Bubble Sort (Сортировка пузырьком)
  • Selection Sort (Сортировка выбором)
  • Merge Sort (Сортировка слиянием)
  • Quick Sort (Быстрая сортировка)
  • Heap Sort (Пирамидальная сортировка)
  • Bogo Sort (Случайная сортировка)
  • Miracle Sort ("Чудо-сортировка")

🧩 Генерация лабиринтов

  • Алгоритм поиска в глубину (DFS)
  • Алгоритм Краскала
  • Алгоритм Уилсона

🚀 Особенности

  • Интерактивное меню с навигацией стрелками
  • Цветовая визуализация элементов (красный, синий, желтый, зеленый)
  • Звуковое сопровождение с разными тонами для разных операций
  • Регулируемый размер данных (1-200 элементов для сортировки, до 50x50 для лабиринтов)
  • Кроссплатформенность (работает в Windows)

🛠 Технические детали

Используемые технологии

  • C++17
  • Windows API для управления консолью
  • ANSI escape-коды для цветового оформления
  • Векторная графика в консоли с помощью псевдографики

Структура проекта

project/
├── main.cpp              # Основной файл с меню
├── sortings.cpp          # Реализация алгоритмов сортировки
├── mazes.cpp            # Реализация генерации лабиринтов
└── README.md            # Документация

📥 Установка и запуск

Требования

  • Компилятор C++ с поддержкой C++17
  • Операционная система Windows
  • Консоль с поддержкой ANSI escape-кодов

Компиляция

g++ main.cpp

Запуск

visual_algorithms.exe

🎮 Использование

Главное меню

  1. MazeVisualizer - генерация лабиринтов
  2. SortingsVisualizer - визуализация сортировок
  3. Exit - выход из программы

Управление

  • Стрелки вверх/вниз - навигация по меню
  • Enter - выбор пункта меню
  • Любая клавиша - продолжить после завершения анимации

Настройки

  • Размер массива: 1-200 элементов
  • Размер лабиринта: до 50x50 клеток

🎨 Визуализация

Сортировки

  • Красный - текущий сравниваемый элемент
  • Синий - второй сравниваемый элемент
  • Желтый - обрабатываемый элемент в Merge Sort
  • Зеленый - отсортированные элементы

Лабиринты

  • Сплошные блоки █ - стены
  • Пустое пространство - проходы

🔧 Классы

SortVisualizer

  • Визуализация 7 алгоритмов сортировки
  • Настраиваемый размер и скорость
  • Цветовое кодирование операций

MazeVisualizer

  • Генерация случайных лабиринтов
  • Алгоритм поиска в глубину
  • Пошаговая визуализация

Menu

  • Интуитивный интерфейс управления
  • Валидация ввода пользователя
  • Плавная навигация

💡 Особенности реализации

  • Модульная архитектура - разделение сортировок и лабиринтов
  • Эффективная перерисовка - использование escape-последовательностей
  • Адаптивная визуализация - подстройка под разные размеры
  • Обработка ошибок - защита от некорректного ввода

🎵 Аудио-визуальная синхронизация

Каждая операция сортировки сопровождается звуковым сигналом с уникальной частотой, зависящей от индексов обрабатываемых элементов.

📝 Примечания

  • Для лучшего опыта рекомендуется использовать консоль с поддержкой Unicode
  • Размеры более 50 элементов могут замедлить визуализацию
  • Bogo Sort и Miracle Sort предназначены только для демонстрационных целей

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages