概要
Pythonには標準でlist型やdict型などのデータ型,ソートや探索の便利なアルゴリズムが実装されており,ライブラリも充実しています。基本文法とライブラリの使い方を学習するだけで,ある程度プログラムを作成できるようになります。ところが複雑な問題に直面したとき,初歩的な知識だけでは立ちどころに行き詰ります。問題をずばり解決する機能やライブラリがあるとは限りません。さまざまな実装方法,機能,ライブラリから,最適なものを選び,組み合わせる必要が出てくるかもしれません。こういったとき,プログラム構造の理解が必要で,なかでもアルゴリズムとデータ構造が重要な要素になります。本書はこのふたつを徹底的にかみ砕いて解説し,ときに開発現場で使用されるテクニックや考え方も盛り込むことで,読者を深い理解へと導きます。
こんな方におすすめ
- Pythonでアルゴリズムとデータ構造を学習したいひと
- スキルアップしたいPython初級プログラマー
- 情報処理技術者試験のアルゴリズム問題の足がかりを得たいひと
目次
第1章 アルゴリズムの基礎
- 1-1 アルゴリズムとデータ構造
- 1-2 基本的な処理フロー
- 1-3 アルゴリズムと実装の基礎
第2章 アルゴリズムの評価
- 2-1 計算量
- 2-2 時間計算量
- 2-3 空間計算量
第3章 配列と連結リスト
- 3-1 配列と連結リスト
- 3-2 単連結リスト
- 3-3 連結リストと配列の比較
第4章 スタックとキュー
- 4-1 スタック
- 4-2 スタックの実装
- 4-3 スタックの活用例
- 4-4 キュー
- 4-5 キューの実装
- 4-6 キューの活用例
第5章 ソート
- 5-1 ソート
- 5-2 ソートの性質
- 5-3 実装のポイント
- 5-4 挿入ソート
- 5-5 選択ソート
- 5-6 バブルソート
- 5-7 シェルソート
- 5-8 マージソート
- 5-9 クイックソート
第6章 探索
第7章 連想配列
- 7-1 連想配列
- 7-2 オープンアドレス法
- 7-3 チェイン法
第8章 文字列検索
- 8-1 文字列の一致
- 8-2 力任せ法
- 8-3 ボイヤー-ムーア法
第9章 木構造
- 9-1 木構造
- 9-2 二分探索木
- 9-3 二分探索木の実装
- 9-4 二分探索木の特徴
- 9-5 データ列による二分木の表現
- 9-6 ヒープ木
- 9-7 ヒープソート
第10章 グラフ
- 10-1 グラフ
- 10-2 隣接行列
- 10-3 ダイクストラ法
第11章 さまざまなアルゴリズム
- 11-1 基数変換
- 11-2 データの圧縮
- 11-3 ハフマン符号化
- 11-4 構文解析
- 11-5 乱数
- 11-6 動的計画法
付録
- A-1 文法に関する補足
- A-2 処理時間の計測
- A-3 メモリ使用量の計測
- A-4 参考文献