Перенесите старт и сравните BFS и DFS на сайте: https://grundyjs.ru/algorithms/maze/?utm_source=rutube&utm_medium=social&utm_campaign=maze&utm_content=search_vertical
Сравниваем поиск в ширину (BFS) и поиск в глубину (DFS) на одном лабиринте. BFS использует очередь и распространяется по слоям расстояния; DFS идёт по ветке и возвращается из тупиков по стеку. Найденный маршрут восстанавливается по родителям клеток.
В примере — сетка 7 × 5, seed 34: от старта (1, 1) до выхода (7, 5) оба метода находят путь из 14 переходов. Здесь нет циклов, поэтому простой путь единственный. BFS сделал текущими 19 клеток, DFS — 27; это числа активированных клеток в данном примере, а не универсальное сравнение скорости алгоритмов.
Если есть циклы, DFS может найти более длинный путь. BFS гарантирует кратчайший маршрут по числу переходов, когда каждый переход имеет одинаковую стоимость. В загруженном лабиринте выход может быть недостижим.
Перенесите старт или выход, измените seed, управляйте шагами и сравните обходы. Можно сохранить лабиринт в JSON или загрузить свой.
Авторская озвучка, без музыки. Сцена использует модель и плеер сайта; MP4 со звуком записаны напрямую через CanvasTake. Русские субтитры подготовлены отдельной дорожкой.
Как построен этот лабиринт: https://rutube.ru/video/c4095f82edb36b2ff6d04382eaaf7570/
#алгоритмы #лабиринт #BFS #DFS #программирование
Постройте свой лабиринт: https://grundyjs.ru/algorithms/maze/?utm_source=rutube&utm_medium=social&utm_campaign=maze&utm_content=generation_vertical
Меняйте seed, делайте шаги вперёд и назад и наблюдайте за стеком.
Рандомизированный поиск в глубину (DFS) строит лабиринт: выбираем ещё не посещённого соседа, открываем проход и сохраняем текущую ветку в стеке. В тупике возвращаемся до клетки с неисследованным направлением.
В примере — сетка 7 × 5, seed 34: 35 клеток и 34 прохода. Каждый новый проход ведёт в новую клетку, поэтому циклов нет. После обхода всей сетки получается связное дерево: между любыми двумя клетками, в том числе выбранными стартом и выходом, есть единственный простой путь.
Попробуйте другой seed, управляйте шагами и сравните получившиеся лабиринты. Поиск пути через BFS и DFS — отдельная тема; этот ролик посвящён генерации.
Авторская озвучка, без музыки. Запись canvas со звуком — CanvasTake.
#алгоритмы #лабиринт #DFS #программирование
Меняйте старт и цель в интерактивном DFS: https://grundyjs.ru/algorithms/depth-first-search/?utm_source=rutube&utm_medium=social&utm_campaign=depth_first_search&utm_content=vertical
Управляйте шагами, проследите за стеком и сравните с поиском в ширину.
Поиск в глубину (DFS) идёт по одной ветке, хранит активные вызовы в стеке и возвращается назад, когда новые соседи заканчиваются.
В этом графе путь из A до F — A → B → D → G → E → C → F: 6 рёбер. Но есть путь A → C → F — всего 2 ребра. DFS находит путь, но не гарантирует кратчайший. BFS находит кратчайший путь по числу рёбер в невзвешенном графе.
Показываем полный обход достижимой компоненты, возвраты и восстановление пути по предкам. Вершина H недостижима из A. Для списка смежности время — O(V + E), дополнительная память самого алгоритма — O(V), без снимков истории визуализации.
Озвучка автора, без музыки. Визуализация — AlgiViz, запись со звуком — CanvasTake.
#алгоритмы #DFS #поисквглубину #программирование
Попробуйте BFS и посмотрите код: https://grundyjs.ru/algorithms/breadth-first-search/?utm_source=rutube&utm_medium=social&utm_campaign=breadth_first_search&utm_content=vertical
Выберите старт и цель, управляйте шагами и проследите за очередью.
Как очередь помогает найти кратчайший путь в невзвешенном графе? Показываем поиск в ширину (BFS) шаг за шагом: открытие вершин, очередь, расстояния и восстановление пути по родителям.
В примере путь из A в G — A → B → D → G: три ребра. Вершина H недостижима из A. Обходим всю достижимую компоненту, затем восстанавливаем один из кратчайших путей.
BFS минимизирует число рёбер: все переходы имеют одинаковую стоимость. Для списка смежности время — O(V + E), дополнительная память самого алгоритма — O(V), без истории визуализации.
Озвучка автора, без музыки. Визуализация — AlgiViz, запись со звуком — CanvasTake.
#алгоритмы #поисквширину #BFS #программирование
Проверь массив из шести чисел: https://grundyjs.ru/algorithms/selection-sort/?utm_source=rutube&utm_medium=social&utm_campaign=selection_sort&utm_content=sorted_comparisons_vertical
Введи 1, 2, 3, 4, 5, 6, нажми «Применить», затем «Старт» и посмотри на счётчик сравнений.
Массив уже отсортирован, но сортировка выбором всё равно ищет минимум на каждом проходе. Для пяти чисел получается десять сравнений и ни одного обмена. А сколько будет для шести?
Авторская озвучка. Визуализация — AlgiViz, запись видео со звуком — CanvasTake.
#алгоритмы #сортировка #программирование
Как найти число, не перебирая весь массив? Бинарный поиск каждый раз отбрасывает половину оставшегося диапазона.
Находим первую шестёрку среди повторов, затем ищем отсутствующую семёрку. В каждом из этих примеров достаточно четырёх проверок среднего элемента из шестнадцати.
Попробовать на своём массиве и посмотреть код: https://grundyjs.ru/algorithms/binary-search/?utm_source=rutube&utm_medium=social&utm_campaign=binary_search&utm_content=vertical
Массив должен быть отсортирован заранее. Показанный вариант возвращает первое вхождение: даже после совпадения поиск продолжается слева. Время поиска — O(log n), дополнительная память самого алгоритма — O(1).
Озвучка автора. Визуализация — AlgiViz, запись видео со звуком — CanvasTake.
#бинарныйпоиск #алгоритмы #binarysearch
Две одинаковые двойки — фиолетовая и голубая. Один обмен с минимумом меняет их взаимный порядок. Так выглядит неустойчивость сортировки выбором.
Попробуйте свой массив: https://grundyjs.ru/algorithms/selection-sort/?utm_source=rutube&utm_medium=social&utm_campaign=selection_sort&utm_content=instability_experiment_vertical
Авторская озвучка. Визуализация — AlgiViz, запись — CanvasTake.
#алгоритмы #сортировка #программирование
Heap sort по шагам: строим максимальную кучу, извлекаем максимум и просеиваем новый корень.
Интерактивный разбор и код: https://grundyjs.ru/algorithms/heap-sort/?utm_source=rutube&utm_medium=social&utm_campaign=heap_sort&utm_content=vertical
Построение O(n), худшее время O(n log n). Итеративный алгоритм на месте требует O(1) дополнительной памяти, без учёта копии входа и истории визуализации. Сортировка неустойчива.
Визуализация: AlgiViz. Запись MP4: CanvasTake. Без звука.
#алгоритмы #сортировка #heapsort #AlgiViz
Трёхстороннее разбиение — Quick sort по шагам.
Группируем значения меньше, равные и больше опорного. После обмена справа проверяем пришедший элемент; рекурсия пропускает равную область.
Интерактивный разбор и код обоих вариантов: https://grundyjs.ru/algorithms/quick-sort/?utm_source=rutube&utm_medium=social&utm_campaign=quick_sort&utm_content=three_way_vertical
В среднем на случайных перестановках различных значений — Θ(n log n), в худшем случае — Θ(n²). Оба варианта нестабильны.
Визуализация: AlgiViz. Запись: CanvasTake. Видео без звука. Русские субтитры доступны отдельной дорожкой на YouTube.
#алгоритмы #сортировка #quicksort #AlgiViz
Разбиение Ломуто — Quick sort по шагам.
Берём последний элемент опорным, переносим меньшие значения влево и ставим опорный на окончательную позицию.
Интерактивный разбор и код обоих вариантов: https://grundyjs.ru/algorithms/quick-sort/?utm_source=rutube&utm_medium=social&utm_campaign=quick_sort&utm_content=lomuto_vertical
В среднем на случайных перестановках различных значений — Θ(n log n), в худшем случае — Θ(n²). Оба варианта нестабильны.
Визуализация: AlgiViz. Запись: CanvasTake. Видео без звука. Русские субтитры доступны отдельной дорожкой на YouTube.
#алгоритмы #сортировка #quicksort #AlgiViz
Сортировка слиянием на примере 10 элементов: деление массива, слияние через буфер и сохранение порядка равных значений.
Интерактивные алгоритмы: https://grundyjs.ru/algorithms/merge-sort/?utm_source=rutube&utm_medium=social&utm_campaign=merge_sort&utm_content=vertical
0:00 Идея алгоритма
0:06 Деление и слияние
1:07 Стабильность
1:13 Время и память
1:21 Попробуйте сами
Время этой реализации — Θ(n log n), дополнительная память — O(n). История анимации хранится отдельно.
Без звука. Визуализация — AlgiViz, запись MP4 — CanvasTake.
#алгоритмы #сортировка #программирование
Ищем минимум, ставим его на место и расширяем отсортированный префикс. Сортировка выбором на примере [5, 2, 4, 2, 1]: шаги, нестабильность и сложность.
При любом порядке входа — n(n − 1)/2 сравнений, время Θ(n²), до n − 1 обменов.
Попробуйте свой массив: https://grundyjs.ru/algorithms/selection-sort/?utm_source=rutube&utm_medium=social&utm_campaign=selection_sort&utm_content=vertical
Без звука, с пояснениями в кадре. Визуализация — AlgiViz, запись напрямую в MP4 — CanvasTake.
#алгоритмы #сортировка #программирование
Сравниваем соседей, меняем их местами — и самый большой элемент оказывается справа. Если за проход не было обменов, останавливаемся.
Пузырьковая сортировка на примере [5, 2, 4, 2, 1]: шаги, стабильность и сложность.
Попробуйте свой массив: https://grundyjs.ru/algorithms/bubble-sort/?utm_source=rutube&utm_medium=social&utm_campaign=bubble_sort&utm_content=vertical
Без звука, с пояснениями в кадре. Визуализация — AlgiViz, запись — CanvasTake.
#алгоритмы #сортировка #программирование
Берём следующий элемент, сдвигаем большие элементы вправо и вставляем ключ на его место. Так работает сортировка вставками.
В ролике: шаги на примере [5, 2, 4, 2, 1], стабильность и сложность O(n²).
Попробуйте свой массив в интерактивной визуализации:
https://grundyjs.ru/algorithms/insertion-sort/?utm_source=rutube&utm_medium=social&utm_campaign=insertion_sort&utm_content=vertical
Без звука, с пояснениями в кадре. Визуализация — AlgiViz, запись — CanvasTake.
#алгоритмы #сортировка #программирование
#anime #аниме #inspectre #kyokousuiri
Ложные выводы [ТВ-1]
Kyokou Suiri / In/Spectre
#anime #аниме #2024 #iparryeverything
Я парировал всё время, чтобы стать сильнейшим авантюристом
Ore wa Subete wo [Parî] Suru ~Gyaku Kanchigai no Sekai Saikyô wa Bôkensha ni Naritai~ / I Parry Everything
#аниме #anime #2026 #killblue
Убивая юность
Kill Ao / Kill Blue
#аниме #anime #2026
Учитель-мизантроп в классе нелюдей
Jingai Kyoushitsu no Ningengirai Kyoushi / A Misanthrope Teaches a Class for Demi-Humans
#anime #marriagetoxin #аниме
Брачный токсин
Marriagetoxin
Сезон 1
Серия 1
#аниме #anime #2026 #killblue
Убивая юность
Kill Ao / Kill Blue
