Найти в Дзене
Алгоритмы это просто!

Алгоритмы это просто!

Простыми словами объясняем алгоритмы.
подборка · 9 материалов
Публикация доступна с подпиской
Базовый
2 месяца назад
Динамическое программирование: как не изобретать велосипед дважды. Решение сложных задач по кирпичикам
Фундаментальный метод, который превращает невозможные вычисления в выполнимые. Как числа Фибоначчи и задача о рюкзаке учат нас не решать одно и то же тысячу раз, а складывать ответ из готовых блоков. Мы с вами прошли через множество алгоритмических стратегий: «разделяй и властвуй», жадный подход, поиск в графах. Каждая хороша в своей нише. Но представьте себе задачу, где и делить нечего, и жадность подводит, а полный перебор всех вариантов займет время до конца Вселенной. Именно с такими монстрами...
Публикация доступна с подпиской
Базовый
2 месяца назад
Алгоритм Дейкстры: как добраться из точки А в Б не просто быстро, а оптимально. Когда «стоимость» дорог нельзя игнорировать
От поиска кратчайших пересадок к поиску самых дешёвых маршрутов. Как жадный, но умный алгоритм строит идеальный путь в мире, где у каждой дороги — своя цена. От карты поездов до логистики доставки. В прошлый раз мы вооружились поиском в ширину (BFS) и научились находить кратчайший путь по количеству шагов. Это сработает, если вы ищете друга в соцсети (где все связи равны) или хотите попасть из одного конца метро в другой с минимальным числом пересадок. Но жизнь редко бывает такой простой. В реальности у каждого пути есть своя цена: километры, время, деньги, расход бензина...
Публикация доступна с подпиской
Базовый
2 месяца назад
Поиск в ширину (BFS): как найти кратчайший путь к цели, будь то друг в соцсети или победа в игре
Алгоритм для нетерпеливых, который исследует мир слой за слоем. Почему очередь и терпение — ваше секретное оружие для поиска оптимального маршрута в лабиринте, графе друзей или на игровой карте. Мы с вами освоили инструменты для работы с линейными данными: сортировали их, искали в них, хранили для мгновенного доступа. Но мир редко бывает линейным. Чаще он похож на паутину связей. Как найти минимальное количество пересадок в метро? Как определить, через сколько рукопожатий вы знакомы с президентом?...
2 месяца назад
Хеш-таблицы: волшебный переводчик, который превращает сложные поиски в мгновенный ответ
Магия, которая стоит за мгновенным входом в соцсети, умной телефонной книгой и быстрым кешем DNS. Как структура данных, придуманная полвека назад, до сих пор остаётся самым популярным инструментом для сверхбыстрого поиска. Мы с вами уже научились быстро сортировать данные и молниеносно искать в них бинарным поиском. Но представьте: у вас есть массив из 10 миллионов пользователей, и вам нужно за микросекунду проверить, не забанен ли конкретный человек с логином «super_cat_2025». Бинарный поиск потребует около 24 сравнений (log₂(10M)), что быстро, но не мгновенно...
2 месяца назад
Быстрая сортировка: алгоритм-разрушитель барьеров, который использует силу рекурсии и стратегию «разделяй и властвуй»
Как хаос превратить в порядок за секунды, даже если данных — миллионы. От педантичной медлительности к революционной скорости через гениальную идею «разделяй и властвуй». В прошлый раз мы разобрали сортировку выбором — алгоритм честный, простой, но мучительно медленный на больших данных. Мы увидели, как вложенные циклы ведут к катастрофе сложности O(n²) и заставили наш воображаемый процессор ждать миллиарды наносекунд. Вы наверняка задались вопросом: «Неужели нет способа умнее? Неужели чтобы разложить миллион книг по полкам, нужно обязательно перебирать их миллиарды раз?»...
153 читали · 2 месяца назад
Рекурсия: как заставить функцию вызывать саму себя, не сломав всё. Притча о матрёшках и бесконечных зеркалах
Вы открываете дверь, за которой комната с точно такой же дверью. Программисты называют это элегантным решением, а не кошмаром. Разбираемся, как работают «функции-матрёшки» и почему без них не написать ни один серьёзный алгоритм. Если попросить программиста назвать концепцию, которая сначала сводит с ума, а потом восхищает своей красотой, многие скажут: «Рекурсия». Это один из самых мощных и элегантных инструментов в арсенале разработчика. Представьте матрёшку. Вы открываете большую, а внутри — такая же, но меньше...