Визуализации сортировок
Иногда мне кажется, что сортировки — это такая базовая тема, которую все рано или поздно захотят (некоторые даже попробуют) визуализировать. Там есть и алгоритмы, и простор для дизайна, и динамика.
А вот три ссылки на очень классные визуализации, которые мне совершенно не надоедает рассматривать:
1. sorting.at — пошаговое сравнение разных алгоритмов, считает количество необходимых шагов.
2. Часть большой статьи Майка Бостока (автора библиотеки d3.js) про алгоритмы. Мне здесь очень нравится идея с сортировкой наклонённых палочек.
3. Видео сортировок в закрашенном разноцветными плитками квадрате с достаточно подробными объяснениями.
#алгоритмы #пример
Иногда мне кажется, что сортировки — это такая базовая тема, которую все рано или поздно захотят (некоторые даже попробуют) визуализировать. Там есть и алгоритмы, и простор для дизайна, и динамика.
А вот три ссылки на очень классные визуализации, которые мне совершенно не надоедает рассматривать:
1. sorting.at — пошаговое сравнение разных алгоритмов, считает количество необходимых шагов.
2. Часть большой статьи Майка Бостока (автора библиотеки d3.js) про алгоритмы. Мне здесь очень нравится идея с сортировкой наклонённых палочек.
3. Видео сортировок в закрашенном разноцветными плитками квадрате с достаточно подробными объяснениями.
#алгоритмы #пример
👍1
Моё главное развлечение последней недели — генерация лабиринтов. Уже полгода у меня на ноуте лежит книга Mazes for Programmers, но добралась я до неё только сейчас.
Книга оказалась интересной, в ней объясняются алгоритмы построения и решения лабиринтов. Объясняются просто, в картинках и описаниях без лишних математических формул. Пока я освоила первую главу из четырёх. Там рассматриваются основные 6 алгоритмов для генерации идеальных (perfect) лабиринтов. Это в которых нет недоступных клеток, то есть из любой выбранной клетки можно попасть в любую другую.
Самые простые алгоритмы это Binary Tree и Sidewinder. Они создаются абсолютно случайно (фактически подбросом монетки в каждой клетке), поэтому имеют очень предсказуемую структуру. Противоположны им Aldous-Broder и Wilson's. С их помощью лабиринты получаются сложными и без угадываемой структуры, но создаются очень долго из-за большого числа случайных блужданий. Два последних алгоритма, Hunt and Kill и Recursive Backtracker, ограничивают блуждания, поэтому работают быстрее и эффективнее. А ещё у них меньше всего тупиков.
В следующих главах рассматриваются другие алгоритмы, лабиринты сложной или необычной формы, трёхмерные лабиринты и прочее. Буду ещё рассказывать. А это лабиринт, созданный методом Hunt and Kill
#алгоритмы #лабиринты
Книга оказалась интересной, в ней объясняются алгоритмы построения и решения лабиринтов. Объясняются просто, в картинках и описаниях без лишних математических формул. Пока я освоила первую главу из четырёх. Там рассматриваются основные 6 алгоритмов для генерации идеальных (perfect) лабиринтов. Это в которых нет недоступных клеток, то есть из любой выбранной клетки можно попасть в любую другую.
Самые простые алгоритмы это Binary Tree и Sidewinder. Они создаются абсолютно случайно (фактически подбросом монетки в каждой клетке), поэтому имеют очень предсказуемую структуру. Противоположны им Aldous-Broder и Wilson's. С их помощью лабиринты получаются сложными и без угадываемой структуры, но создаются очень долго из-за большого числа случайных блужданий. Два последних алгоритма, Hunt and Kill и Recursive Backtracker, ограничивают блуждания, поэтому работают быстрее и эффективнее. А ещё у них меньше всего тупиков.
В следующих главах рассматриваются другие алгоритмы, лабиринты сложной или необычной формы, трёхмерные лабиринты и прочее. Буду ещё рассказывать. А это лабиринт, созданный методом Hunt and Kill
#алгоритмы #лабиринты
Hunt and Kill алгоритм
Продолжаю изучать алгоритмы генерации лабиринтов. И чтобы уж точно закрепить новые знания, я решила сделать визуализацию работы hunt and kill алгоритма:
https://codepen.io/gnykka/pen/qBbMrxK
#алгоритмы #лабиринты
Продолжаю изучать алгоритмы генерации лабиринтов. И чтобы уж точно закрепить новые знания, я решила сделать визуализацию работы hunt and kill алгоритма:
https://codepen.io/gnykka/pen/qBbMrxK
#алгоритмы #лабиринты
Как создавать лабиринты
На днях я наконец-то дочитала книгу Mazes for Programmers и теперь знаю аж 12 разных алгоритмов для генерации лабиринтов, несколько методов для их решения и даже умею адаптировать эти методы под разные формы и поверхности.
Я не очень представляю, где мне это может пригодиться, разве что я когда-нибудь осуществлю свою старую идею сделать небольшую браузерную игру. Но пока, чтобы закрепить знания, я решила написать небольшой обзор прочитанного:
https://teletype.in/@gnykka/mazes
Если вам будет интересно, код можно найти у меня на github. Все примеры написаны на Ruby, но в будущем я хочу переписать их на JS и снабдить визуализациями.
#алгоритмы #лабиринты
На днях я наконец-то дочитала книгу Mazes for Programmers и теперь знаю аж 12 разных алгоритмов для генерации лабиринтов, несколько методов для их решения и даже умею адаптировать эти методы под разные формы и поверхности.
Я не очень представляю, где мне это может пригодиться, разве что я когда-нибудь осуществлю свою старую идею сделать небольшую браузерную игру. Но пока, чтобы закрепить знания, я решила написать небольшой обзор прочитанного:
https://teletype.in/@gnykka/mazes
Если вам будет интересно, код можно найти у меня на github. Все примеры написаны на Ruby, но в будущем я хочу переписать их на JS и снабдить визуализациями.
#алгоритмы #лабиринты