ソート6種の可視化
棒グラフが並べ替わる様子を1手ずつ再生。比較・交換の回数と進行率を常に表示し、ピボットや確定済みの要素も色で区別します。
// アル楽 — Algorithm Visualizer
ソート・探索・再帰の古典アルゴリズムを、1手ずつアニメーションで再生。 比較はオレンジ、交換は緑。棒がどう入れ替わり、迷路がどう広がり、円盤がどう移るのか。 コードを読む前に、まず目で見て「なぜ速いのか」をつかめます。
同じ配列を2〜4種のソートに同時に解かせ、ゴール順と比較・交換回数を並べて見比べる。O(n²) と O(n log n) の差が、数字より先に目に入ります。
$ aruraku race quick merge insertion bubble \ --pattern random lane order status quick O(n log n) ✓ 1st merge O(n log n) ✓ 2nd insertion O(n²) running… bubble O(n²) running… $ aruraku race insertion quick \ --pattern nearly-sorted insertion O(n²) ✓ 1st # ほぼ整列なら速い quick O(n log n) ✓ 2nd
読むのではなく、動かして見る。止めて、1手進めて、条件を変えて、もう一度。
棒グラフが並べ替わる様子を1手ずつ再生。比較・交換の回数と進行率を常に表示し、ピボットや確定済みの要素も色で区別します。
BFS・DFS・ダイクストラ法・A* がグリッド迷路を探索。BFS は波紋のように均等に広がり、A* はゴールの方向へ偏って進む違いが一目で分かります。壁はタップで編集、新しい迷路も生成。
円盤3〜8枚のハノイの塔で、最小手数 2ⁿ−1 を実際に追う。コッホ曲線・シェルピンスキー三角形・再帰木は深さを変えて自己相似を確かめられます。
速度スライダーでゆっくり、一時停止して「1手」ずつ前へ。どの瞬間に何が比較され、何が入れ替わったのかをじっくり追えます。
ⓘ ボタンで仕組み・計算量・現実での使われ方・長所と短所を確認。動きと説明を行き来しながら理解を固められます。
アニメーションの画面には広告を一切置きません。バナーはメニュー画面の下部だけ、全画面広告は分野の切り替え時などの節目だけ。全学習機能は無料で使えます。
$ legend
基本情報技術者試験などで問われる定番を中心に収録しています。
| 分野 | アルゴリズム | 計算量(平均) | 見どころ |
|---|---|---|---|
| ソート | バブルソート | O(n²) | 隣同士の比較と交換。大きい値が右端へ浮かんでいく |
| ソート | 選択ソート | O(n²) | 残りから最小を探して先頭へ。交換回数が少ない |
| ソート | 挿入ソート | O(n²) | ほぼ整列済みの配列では非常に速い |
| ソート | マージソート | O(n log n) | 分割して、併合しながら並べる。安定ソート |
| ソート | クイックソート | O(n log n) | ピボットを基準に左右へ振り分ける |
| ソート | ヒープソート | O(n log n) | ヒープを作り、最大値を末尾へ確定させていく |
| 探索 | 幅優先探索 (BFS) | O(V+E) | 同心円状に均等に広がり、最短経路を保証 |
| 探索 | 深さ優先探索 (DFS) | O(V+E) | 行けるところまで突き進み、行き止まりで戻る |
| 探索 | ダイクストラ法 | O(E log V) | コストの小さい順に確定させて最短経路を求める |
| 探索 | A* | — | ヒューリスティックでゴール方向を優先して探す |
| 再帰 | ハノイの塔 | O(2ⁿ) | 円盤 n 枚の最小手数は 2ⁿ−1 |
| 再帰 | コッホ曲線 / シェルピンスキー三角形 / 再帰木 | — | 深さを上げるごとに同じ形が入れ子になる |