コンピューターで計算を行う際、問題を解く手順を定式化した「アルゴリズム」。開発者にとってアルゴリズムに関する知識は必要不可欠ですが、まったくの独学でプログラミングを身につけた方にとっては馴染みにくい概念かもしれません。
本日紹介する「Illustrated Algorithms」は、そのちょっと難しいアルゴリズムを楽しく学習することができるWebサイト。バイナリサーチやクイックソートといった代表的アルゴリズムを楽しく身につけることができます。
各アルゴリズムページには、イラストで表現されたサンプルデータとともにソースコードが掲載されていて、実行するとステップごとにリアルタイムにデータに反映されていきます。
頭のなかだけで考えるとなかなか理解しづらい、整列や検索のアルゴリズムも、このサイトを利用すれば直感的に理解することができそうです。
クイックソート
例として最速のソートアルゴリズムの一つ「クイックソート」を見ていきます。クイックソートのサンプルデータはフルーツの配列で、これを名前順に整列できれば完了です。
▲再生ボタンを押すとスタートです。クイックソートではランダムな値であるピボットを選び、それより小さなもの、大きなものにグループ分けして、並べ替えを実行します。
▲それぞれのグループに関して再帰的に並べ替えを実行していくと…
▲最終的に全体のソートが完成します。
▲一方バイナリサーチのほうは動物の配列がサンプルデータとなっています。
腑に落ちない箇所があった場合、画面下部のプログレスバーをドラッグして戻したり進めたりすることもできます。
まとめ
Illustrated Algorithmsを利用すれば、難しい印象のあるアルゴリズムを楽しく学習することができます。レスポンシブデザインが採用されていて、スマートフォンやタブレットでも表時可能。移動中にアルゴリズムの勉強でも…という場合にも安心して利用することができそうです。