Skip to content

アルゴリズムから始める Go 入門

Go を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。

章構成

第 1 部: 基本

テーマ
第 1 章 基本的なアルゴリズム 3 値の最大値・中央値、条件判定、繰り返し処理、多重ループ
第 2 章 配列 配列の基本操作、探索、並べ替え
第 3 章 探索アルゴリズム 線形探索、二分探索、ハッシュ法

第 2 部: データ構造

テーマ
第 4 章 スタックとキュー スタックの概念と実装、キューの概念と実装
第 5 章 再帰アルゴリズム 再帰の基本、再帰と反復、再帰の応用

第 3 部: ソートと文字列

テーマ
第 6 章 ソートアルゴリズム バブルソート、選択ソート、挿入ソート、クイックソート、マージソート
第 7 章 文字列処理 文字列の基本、探索、照合

第 4 部: 高度なデータ構造

テーマ
第 8 章 リスト 線形リスト、連結リスト、循環リスト、双方向リスト
第 9 章 木構造 二分木、探索木、ヒープ

Python 版との違い

概念 Python Go
型宣言 型ヒント(任意) 静的型付き(コンパイル時検査)
テスト pytest 標準 testing パッケージ
クラス class Foo: struct + メソッド
例外 raise Exception 複数戻り値 (T, error)
リスト list スライス []T
辞書 dict マップ map[K]V
None None nil
継承 クラス継承 インターフェース合成
ガベージコレクション 参照カウント + GC トレーシング GC
パッケージ モジュール パッケージ(章ごとに分割)