学習ロードマップ

アルゴリズムとデータ構造

計算量の考え方、ソートや探索などの古典的アルゴリズム、そしてそれらを実装で動かすための言語別ガイド。競プロにも実務にも効く土台。

Excelでわかる機械学習 超入門 -AIのモデルとアルゴリズムがわかる Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量 Pythonで作って学べるゲームのアルゴリズム入門 Cによるアルゴリズムとデータ構造(改訂2版) Pythonで学ぶ アルゴリズムとデータ構造
SCROLL TO BEGIN

このロードマップが扱うもの

使

このロードマップの全体像

アルゴリズムとデータ構造を、コーディング面接対策だけでなく日々の設計判断に活かせるレベルまで引き上げるためのロードマップです。対象は、言語の文法は一通り使えるが計算量やデータ構造の選択に自信がない開発者、および競技プログラミングや技術面接に向けて体系的に学び直したい人。学び終える頃には、問題を見たときに「どのデータ構造・どの手法が候補か」を数パターン挙げ、計算量で比較して選べるようになります。

学習ステップ

1. 計算量と基本データ構造: O 記法、配列・連結リスト・スタック・キュー・ハッシュテーブル・ヒープ・木。 2. ソートと探索: 比較ソート各種、線形・二分探索、ハッシュによる探索の使い分け。 3. グラフアルゴリズム: BFS / DFS、最短経路(Dijkstra, Bellman-Ford)、最小全域木、トポロジカルソート。 4. 設計技法: 分割統治、貪欲法、動的計画法、二分探索の応用、尺取り法。 5. 発展トピック: セグメント木・Union-Find、文字列アルゴリズム、計算複雑性の感覚、近似・乱択の入り口。 6. 演習: オンラインジャッジや過去問で、時間を測りながら解く習慣をつけます。

注意点と周辺知識

最初から難問に挑むより、基本データ構造の計算量を体に染み込ませる方が結果的に近道です。実装は紙や擬似コードで流れを書いてから書き始めると、境界条件のバグが減ります。離散数学(集合・関係・確率・簡単なグラフ理論)を並行して学ぶと、証明や計算量解析の読解が楽になります。言語ごとの標準ライブラリ(C++ STL、Python の heapq / bisect など)の癖も押さえておくと演習の効率が上がります。

ロードマップ

5 つのステップで読み進める

  1. 01
    ステップ 01 まず全体像を掴む
    Excelでわかる機械学習 超入門 -AIのモデルとアルゴリズムがわかる
  2. 02
    ステップ 02 古典アルゴリズム実装
    Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量
  3. 03
    ステップ 03 ゲームで実装を楽しむ
    Pythonで作って学べるゲームのアルゴリズム入門
  4. 04
    ステップ 04 C で基礎を固める
    Cによるアルゴリズムとデータ構造(改訂2版)
  5. 05
    ステップ 05 大学教科書で総まとめ
    Pythonで学ぶ アルゴリズムとデータ構造

第 1 章

まず全体像を掴む

  1. まず全体像を掴む

    Excel で AI/ML のアルゴリズムを動かす。「まず大きな視点で ML 系アルゴリズムはどんなものか」を 30 分で俯瞰する導入。

    Excelでわかる機械学習 超入門 -AIのモデルとアルゴリズムがわかる
    この章の 1 冊 Excelでわかる機械学習 超入門 -AIのモデルとアルゴリズムがわかる

    Excelで主要な機械学習アルゴリズムの仕組みを手を動かして理解する

    この本で身につくこと
    • 教師あり学習・教師なし学習・強化学習の区別と各手法の代表的な用途を言葉で説明できる
    • 最小二乗法・勾配降下法・ラグランジュ緩和法などの最適化アルゴリズムをExcelのセル計算で手順を追いながら確認できる
    • SVMの分類境界(サポートベクター)と双対問題の考え方を数値例から直感的に把握できる
    • 誤差逆伝播法(バックプロパゲーション)の計算ステップをスプレッドシートで展開し、勾配更新の流れを定量的に検証できる

    想定読者: AIの仕組みをアルゴリズムレベルで把握したい、プログラミング経験のない入門者・非エンジニア職の学習者

    前提知識: 高校数学レベルの行列・微分の基礎知識(本書付録C〜Fで補完可能だが、事前知識があると読み進めが速い) / Excelの基本操作(関数入力・グラフ作成・ソルバーアドインの利用)

    本の詳細を見る →
  2. 古典アルゴリズム実装

    ソート・探索など教科書的アルゴリズムを Python で。計算量の考え方と合わせて「なぜこの順番か」が身につく。

    Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量
    この章の 1 冊 Pythonではじめるアルゴリズム入門 伝統的なアルゴリズムで学ぶ定石と計算量

    Python で 25 種のアルゴリズムを実装し、計算量まで体系的に理解する

    この本で身につくこと
    • 線形探索・二分探索・幅優先・深さ優先探索など代表的な探索アルゴリズムを Python コードで実装できる
    • 選択・挿入・バブル・ヒープ・マージ・クイックソートを計算量の観点から比較し、用途に応じて選択できる
    • ベルマン・フォード法・ダイクストラ法・A* による最短経路問題を解く手順を説明できる
    • O(n) / O(n log n) / O(n^2) など計算量の記法を理解し、アルゴリズム選択の判断軸として使える

    想定読者: Python でプログラミングを学んでいるが、アルゴリズムの選び方や計算量の考え方に自信がない初学者。基本情報技術者試験の対策としてPythonを使って学習したい人にも向く。

    本の詳細を見る →
  3. ゲームで実装を楽しむ

    経路探索・衝突判定・状態遷移など「ゲーム作りに必要なアルゴリズム」を題材に。応用の広さを体感。

    Pythonで作って学べるゲームのアルゴリズム入門
    この章の 1 冊 Pythonで作って学べるゲームのアルゴリズム入門

    ゲーム制作を通じてアルゴリズムの基礎を体験的に習得する

    この本で身につくこと
    • アルゴリズムの概念をPythonの実装コードと結びつけて理解できる
    • ミニゲーム(神経衰弱・三目並べ・リバーシ)の制作を通じてゲームロジックの設計手順を習得できる
    • 図形描画や座標管理の基礎を、実際に動くプログラムで確認しながら学べる
    • リバーシAIを実装することで、単純な探索・評価関数の考え方を実感できる

    想定読者: プログラミング学習中でアルゴリズムを実用的なコンテキストで学びたい人、またはPythonゲーム開発に興味がある初〜中級者

    本の詳細を見る →
  4. C で基礎を固める

    言語の抽象層を剥いで C で実装することで、ポインタ・メモリ配置とアルゴリズムが地続きに見える。

    Cによるアルゴリズムとデータ構造(改訂2版)
    この章の 1 冊 Cによるアルゴリズムとデータ構造(改訂2版)

    C言語でアルゴリズムとデータ構造の基礎を実装レベルで習得する

    この本で身につくこと
    • リスト・スタック・キュー・木・ヒープ・グラフといった基本データ構造をC言語で実装できる
    • クイックソートを含む代表的な整列アルゴリズムの計算量と使い分けを説明できる
    • 動的計画法・分枝限定法などアルゴリズム設計パラダイムを選択する判断軸を持てる
    • 二分探索木・B木などの順序集合処理の仕組みを理解し実装に落とせる

    想定読者: 情報工学系の学生、または独学でアルゴリズム基礎を体系的に固めたいプログラマー。C言語の基本文法は理解しており、計算量・探索・整列の原理をコードと対応させて学びたい人。

    本の詳細を見る →
  5. 大学教科書で総まとめ

    Python 寄りの教科書で「計算量・正当性の証明」を少しずつ意識できるレベルまで。他の本で出会った概念を引きで見直す。

    Pythonで学ぶ アルゴリズムとデータ構造
    この章の 1 冊 Pythonで学ぶ アルゴリズムとデータ構造

    Pythonを使いアルゴリズムとデータ構造を基礎から体系的に習得する

    この本で身につくこと
    • スタック・キュー・木・グラフなど主要データ構造の概念と、Pythonでの実装方法
    • 線形探索・二分探索・ハッシュ探索など探索アルゴリズムの計算量と使い分け
    • バブルソート・クイックソート・マージソートなど代表的なソートアルゴリズムの動作原理と効率比較
    • 分割統治法・動的計画法・貪欲法などアルゴリズム設計手法の基礎を実装レベルで理解する

    想定読者: Pythonの基本文法を習得済みで、計算量・データ構造・探索・ソートの仕組みを体系的に学びたい学生・入門者

    本の詳細を見る →