アルゴリズムから始める Java 入門¶
Java を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。
章構成¶
第 1 部: 基本¶
| 章 | テーマ |
|---|---|
| 第 1 章 基本的なアルゴリズム | 3 値の最大値・中央値、条件判定、繰り返し処理、多重ループ |
| 第 2 章 配列 | 配列の基本操作、基数変換、素数列挙 |
| 第 3 章 探索アルゴリズム | 線形探索、二分探索、ハッシュ法 |
第 2 部: データ構造¶
| 章 | テーマ |
|---|---|
| 第 4 章 スタックとキュー | 固定長スタック、固定長キュー(リングバッファ) |
| 第 5 章 再帰アルゴリズム | 階乗、最大公約数、ハノイの塔、8 王妃問題 |
第 3 部: ソートと文字列¶
| 章 | テーマ |
|---|---|
| 第 6 章 ソートアルゴリズム | バブル、選択、挿入、シェル、クイック、マージ、ヒープ、度数ソート |
| 第 7 章 文字列処理 | ブルートフォース、KMP、Boyer-Moore、文字カウント、回文判定 |
第 4 部: 高度なデータ構造¶
| 章 | テーマ |
|---|---|
| 第 8 章 リスト | 単方向連結リスト、双方向連結リスト、配列カーソル版リスト |
| 第 9 章 木構造 | 二分探索木(挿入、探索、削除、走査) |
実装コード¶
実装コードは apps/java/ にあります。
環境¶
- Java: JDK 21
- ビルドツール: Gradle
- テストフレームワーク: JUnit 5
- Nix devShell:
.#java
# テスト実行
nix develop .#java --command bash -c "cd apps/java && gradle test"
参考文献¶
- 『新・明解 Python で学ぶアルゴリズムとデータ構造』 -- 柴田望洋
- 『テスト駆動開発』 -- Kent Beck