第3回まで無料

アルゴリズム基礎 入門コース

計算量(O記法)の読み方と実測のしかたから、配列・探索・ソート・スタック・キュー・ハッシュテーブル・木・ヒープ・グラフ探索・動的計画法・貪欲法・文字列アルゴリズム、そして「問題を解く手順」まで。全20レッスンで、自分のコードを見て「これは遅い」と言えるようになるところまで進みます。外部ライブラリは使いません。コードと実行結果はすべて Python 3.14.2 で実際に動かしたものです。

カリキュラム

全20レッスンを7つの章に分けています。第1章(第1〜2回)がこのコースの核で、以降は毎回そこで作った「測る」道具を使います。第1回から順に進めるのがおすすめです。 ※ 競技プログラミング向けではありません。実務のコードを速くする話として書いています。 ※ サンプルはブラウザ内で実行できます(外部ライブラリは使いません)。件数の大きい計測は、手元の python3 で試してください。

Chapter 1 — 土台(第1〜2回)

このコースの核になる 2 回です。計算量(O記法)の見方と、それを自分で測る方法。n を 2 倍にして時間の伸びを見る、という道具をここで手に入れます。

Chapter 2 — 配列と探索(第3〜5回)

Python の list が内部でどう並んでいるかを押さえ、線形探索と二分探索を書きます。「何回探すか」で手法を選ぶ、という判断もここで身に付けます。

Chapter 3 — ソート(第6〜9回)

手書きの O(n^2) 3 つ、マージソート、クイックソート、そして組み込みの Timsort。最悪ケース・安定性・定数倍という、比較の軸がひととおり出そろいます。

Chapter 4 — データ構造(第10〜14回)

スタック・キュー・連結リスト・ハッシュテーブル・木・ヒープ。実務でいちばん効く「in を set に変える」(1,058 倍)もここです。

Chapter 5 — グラフ探索(第15〜16回)

路線図を題材に、幅優先探索とダイクストラ法を書きます。深さ優先探索では、Python の再帰が深さ 1000 で止まる話にもぶつかります。

Chapter 6 — 設計の型(第17〜18回)

動的計画法と貪欲法。「同じ計算を 2 度しない」と「その場の最善を選ぶ」。後者は速いかわりに、いつも正しいとは限りません。

Chapter 7 — 仕上げ(第19〜20回)

文字列の 2 つの型(2 つのポインタ・スライディングウィンドウ)と、問題を解く手順そのもの。早見表を持ち帰って終わります。

全20レッスンを終えたら、次は書けるようになった判断を実際のコードに当てる番です。Python 入門コース で書き方そのものを固める、Python & 機械学習 入門コース でデータを扱う、Go 入門コース で計算量と実行速度の両面から見直す——どれもこのコースの続きになります。メンバーシップで全コースが解放されます。