Каков наилучший способ визуализации абстрактных понятий (алгоритм / структура данных)? - PullRequest
2 голосов
/ 06 декабря 2008

Какой лучший способ «увидеть, что происходит» в алгоритме / структуре данных? Если это что-то вроде бинарного поиска, я просто представляю кучу коробок подряд и каждый раз выбрасываю половину из них. Есть ли что-то более мощное, что позволит нам получить нечто столь же абстрактное, как алгоритм / структура данных?

Уточнение: я ищу что-то более общее. Пример: для того, чтобы визуализировать время - некоторые люди используют часы в голове, но это медленно, в то время как более естественное ощущение будет глобусом, и если вы пытаетесь понять, как работает алгоритм, вы можете представить два объекта движется в разных направлениях на этом земном шаре.

Ответы [ 3 ]

3 голосов
/ 06 декабря 2008

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

Например, посмотрите эти анимации: Анимированные алгоритмы сортировки

Вот анимация , которая показывает, как структуры данных работают в MergeSort.

Теперь, хотите ли вы потратить время на подключение вашего алгоритма к какой-то анимированной визуализации, это другой вопрос!

2 голосов
/ 06 декабря 2008

Алгоритм анимации был большой областью исследований в 1990-х годах. Марк Х. Браун, который тогда работал в Центре исследований цифровых систем, проделал большую и интересную работу. Исходный код его Zeus анимационной системы по-прежнему доступен, и его не составит труда настроить. Я играл с Зевсом много лет назад, и если я правильно помню, он поставляется с десятками анимаций.

У них было несколько «фестивалей», на которых неспециалисты собирались, чтобы оживить новые алгоритмы. Вы можете увидеть один из отчетов (с неподвижными изображениями) на фестивале 1993 . У YouTube есть одно из своих видео Визуализация комбинаторных структур .

0 голосов
/ 06 декабря 2008

Описание чего-либо в терминах другой вещи называется аналогией. Вы только что сделали это с бинарным поиском, являющимся кучей ящиков. Просто поиграйте с предыдущими знаниями ученика.

Например, деревья могут рассматриваться как связанные списки с несколькими «следующими» узлами, или они могут быть объяснены непосвященным как нечто похожее на иерархию.

Что касается конкретных методов объяснения, графики и конечные автоматы могут быть легко визуализированы с помощью Graphviz. Очень простой ориентированный граф можно выразить очень просто:

digraph G {
   A->B;
   B->C;
   C->D;
   D->B;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...