プログラミングに必要不可欠な「データ構造とアルゴリズム」をシンプルなビジュアルで解説してくれる「VisuAlgo」
プログラミングを行うために必要不可欠なものにデータを格納する形式「データ構造」と、問題を解くための定型化した手順「アルゴリズム」があります。基本的なソート・アルゴリズムから複雑なグラフ・データ構造とアルゴリズムまでの「データ構造とアルゴリズム」について、分かりやすくにビジュアル的に学ぶことが出来る「VisuAlgo」です。
この「VisuAlgo」は、学生が「データ構造とアルゴリズム」をより良く学べる手助けをするツールとしてシンガポール国立大学(NUS)の Steven Halim 博士がと学生チームによって開発されたオンライン・サービス。現在も進行しているプロジェクトであり、より複雑なものも開発中。現在最も熱く開発しているのは、学生たちの「データ構造とアルゴリズム」の知識をテストする自動で問題・添削を行えるオンライン・クイズ・システムとのこと。
使い方は非常に簡単。学びたい項目をクリック選択すると、デバッグしているかのように同期したデータとプログラム・コードにより実際の動作を確認できます。また、データの変更など詳細な設定も可能となっています。
VisuAlgo – visualising data structures and algorithms through animation
以下の「データ構造とアルゴリズム」のビジュアル解説を見ることが出来ます。
ソート(Sorting)、マスク(Bitmask)、連結リスト・スタック・キュー・デック(Linked List, Stack, Queue, Deque)、2分探索木・AVL木(Binary Search Tree、AVL Tree)
二分ヒープ(Binary Heap)、グラフ・データ構造(Graph Data Structures)、素集合データ構造(Union-Find Disjoint Sets)、セグメント木(Segment Tree)、
バイナリ・インデックスド・ツリー(Binary Indexed Tree)、ジェネリック・リカージョン・ツリー/DAG(Generic Recursion Tree/DAG)、グラフ・トラバーサル(Graph Traversal)、ミニマム・スパニング・ツリー(Minimum Spanning Tree)
単一始点最短経路問題(Single-Source Shortest Paths)、ネットワーク・フロー(Network Flow)、グラフ・マッチング(Graph Matching)、接尾辞木(Suffix Tree)
接尾辞配列(Suffix Array)、計算幾何学(omputational geometry)
ソース:VisuAlgo – visualising data structures and algorithms through animation
関連記事
複雑に絡み合うコード……プログラムの進化を視覚化すると大変なことに - DNA
あるプログラム言語で最も使用されているキーがよくわかるヒートマップ - DNA
ITデベロッパー必携、主要なプログラム言語やツールなどのほぼすべてを網羅したチートシート集「OverAPI.com」 - DNA
「本当に人気のあるプログラミング言語」ランキングを計測する方法と結果 - DNA
東欧の響き、ハンガリアン・フォークダンスでクイックソート法が楽しく理解できる動画 - DNA