新・明解Pythonで学ぶアルゴリズムとデータ構造


新・明解Pythonで学ぶアルゴリズムとデータ構造


ソフトバンククリエイティブ


著者名:柴田望洋


はじめに
本書の構成

第1章 基本的なアルゴリズム
1-1 アルゴリズムとは
 2値の最大値
 条件判定と分岐
 フローチャート(流れ図)の記号
1-2 繰返し
 1からnまでの整数の総和を求める
 2値のソートと2値の交換
 繰返しの過程における条件判定(その1)
 繰返しの過程における条件判定(その2)
 繰返しの過程における条件判定(その3)
 正の値の読込み
 辺と面積が整数値である長方形
 繰返しのスキップと複数のrangeの走査
 構造化プログミング
 多重ループ

第2章 データ構造と配列
2-1 データ構造と配列
 配列の必要性
 リストとタプル
 インデックス式によるアクセス
 スライス式によるアクセス
 データ構造
2-2 配列
 配列の要素の最大値を求める
 配列の要素の最大値を求める関数の実装
 アノテーションと型ヒント
 再利用可能なモジュールの構築
 モジュールのテスト
 配列の要素の並びを反転する
 基数変換
 素数の列挙

第3章 探索
3-1 探索アルゴリズム
 探索とキー
 配列からの探索
3-2 線形探索
 線形探索
 番兵法
3-3 2分探索
 2分探索
 計算量
3-4 ハッシュ法
 ソートずみ配列の操作
 ハッシュ法
 衝突
 チェイン法
 オープンアドレス法

第4章 スタックとキュー
4-1 スタック
 スタックとは
 スタックの実現
4-2 キュー
 キューとは
 単純な配列によるキューの実現
 リングバッファによるキューの実現

第5章 再帰的アルゴリズム
5-1 再帰の基本
 再帰とは
 階乗値
 ユークリッドの互除法
5-2 再帰アルゴリズムの解析
 再帰アルゴリズムの解析
 再帰アルゴリズムの非再帰的表現
5-3 ハノイの塔
 ハノイの塔
5-4 8王妃問題
 8王妃問題とは
 王妃の配置
 分岐操作
 限定操作と分岐限定法
 8王妃問題を解くプログラム

第6章 ソート
6-1 ソートとは
 ソートとは
6-2 単純交換ソート(バブルソート)
 単純交換ソート(バブルソート)
 シェーカーソート(双方向バブルソート)
6-3 単純選択ソート
 単純選択ソート
6-4 単純挿入ソート
 単純挿入ソート
6-5 シェルソート
 単純挿入ソートの特徴
 シェルソート
6-6 クイックソート
 クイックソートの概略
 分割の手順
 クイックソート
 非再帰的クイックソート
 枢軸の選択
 時間計算量
6-7 マージソート
 ソートずみ配列のマージ
 マージソート
6-8 ヒープソート
 ヒープ
 ヒープソート
 根を削除したヒープの再構築
 ヒープソートへの拡張
 配列のヒープ化
 ヒープソートの時間計算量
6-9 度数ソート
 度数ソート

第7章 文字列探索
7-1 力まかせ法
 文字列探索
 力まかせ法(単純法)
7-2 KMP法
 KMP法
7-3 Boyer-Moore法
 Boyer-Moore法

第8章 線形リスト
8-1 線形リストとは
 線形リスト
 線形リストの実現
8-2 線形リスト
 ポイントによる線形リスト
 線形リストを利用するプログラム
8-3 カーソルによる線形リスト
 カーソルによる線形リスト
 配列内の空き要素
 フリーリスト
8-4 循環・重連結リスト
循環リスト
重連結リスト
循環・重連結リスト
循環・重連結リストの実現
循環・重連結リストを利用するプログラム

第9章 木構造と2分探索木
9-1 木構造
 木とは
 順序木と無順序木
 順序木の探索
9-2 2分木と2分探索木
 2分木
 完全2分木
 2分探索木
 2分探索木の実現
 2分探索木を利用するプログラム

章末問題の解答
参考文献
索引
謝辞
著者紹介

書籍目次

Posted by shi-n