Visual Algorithm Primer

初学者向けの静的アルゴリズム教材

アルゴリズムは、式の前に動きで覚える。

このサイトは、名前だけ知っている状態から抜けるための教材です。まず動きを見て、そのあとで計算量や擬似コードを対応づけます。

31 pages 1 algorithm = 1 page static HTML

Guide

はじめに読む4ページ

最初はこの4ページで十分です。増え方、比較、交換、探索の基礎がここで揃います。

目次

トップページの目次

Paths

学習ルート

アルゴリズム名から入らなくても学べるように、目的別の入口を用意します。

比較して学ぶ

ソートをまとめて見る

隣接交換、選択、挿入、半分ずつ分けて進める方法、ヒープまで、何を基準に並べ替えるかで比較します。

比較ソート 半分ずつ解く 線形時間ソート

前提を固める

概念ページから入る

再帰、メモ化、安定ソート、データ構造へ進み、個別アルゴリズムの前提知識を固めます。

再帰 メモ化 データ構造

Catalog

カテゴリ一覧

学習順ではなく、テーマから直接ページを探すための一覧です。

Category

概念

先に読んでおくと、個別ページの理解が早くなる概念ページです。

Category

ソート

並べ替えの発想ごとの差を見比べるためのページ群です。

Bubble Sort(バブルソート)

左から隣接要素を比べ、逆順なら交換します。1 パス終わるごとに未確定部分の最大値が右端へ確定します。

Selection Sort(選択ソート)

未整列領域を最後まで見て最小値を選び、先頭と交換します。交換回数は少なめですが、比較回数は基本的に O(n²) です。

Insertion Sort(挿入ソート)

新しい要素を 1 つ取り出し、左側の整列済み領域の適切な位置へ挿入します。ほぼ整列済みの入力では強いアルゴリズムです。

Merge Sort(マージソート)

大きい問題を半分ずつの小さい問題に分けて進める方法です。半分ずつ整列して、最後に 2 つの整列済み配列をまとめます。

Quick Sort(クイックソート)

1 つ基準値を決めて、それより小さいグループと大きいグループに分けながら進める方法です。基準値の選び方に偏りが出ると遅くなります。

Heap Sort(ヒープソート)

二分ヒープを使って最大値を何度も末尾へ送ります。比較的安定した O(n log n) ですが、安定ソートではありません。

Counting Sort(計数ソート)

要素の取りうる値の範囲が狭いときに強いソートです。各値が何回出たかを数え、そこから整列済み列を組み立てます。

Radix Sort(基数ソート)

各桁を下位から順に安定ソートしていく方法です。桁数が短い整数列などで有効です。

Category

探索

どこまで見るか、どう絞るか、探索の基本を学ぶページ群です。

Category

データ構造

アルゴリズムを支える基本構造を先に把握するためのページ群です。

Category

グラフ

頂点、辺、距離、到達順序を扱うページ群です。

Category

動的計画法・再帰

部分問題、再帰、表の使い方を学ぶページ群です。