Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につけ


Pythonで学ぶアルゴリズムの教科書 一生モノの知識と技術を身につける


インプレス


著者:廣瀬豪


はじめに

Chapter 1 プログラミングの基礎知識
Lesson 1-1 入力と出力
Lesson 1-2 変数
Lesson 1-3 条件分岐
Lesson 1-4 繰り返し
Lesson 1-5 関数
Lesson 1-6 配列
Chapter 1 練習問題
Extra Lesson 1 乱数を扱う

Chapter 2 プログラミングの力を養う
Lesson 2-1 平均値を求める
Lesson 2-2 1からnまで足し合わせる
Lesson 2-3 九九の式を出力する
Lesson 2-4 素数を求める
Lesson 2-5 nの階乗(n!)を求める
Chapter 2 練習問題
Extra Lesson 2-1 エラトステネスの篩
Extra Lesson 2-2 n進法を理解する

Chapter 3 データ構造を学ぶ
Lesson 3-1 スタック
Lesson 3-2 キュー
Lesson 3-3 リスト
Lesson 3-4 木
Lesson 3-5 グラフ
Chapter 3 練習問題
Extra Lesson 3-1 スタックとキューを扱うPythonモジュール
Extra Lesson 3-2 データを保存する

Chapter 4 サーチ
Lesson 4-1 線形探索
Lesson 4-2 二分探索
Lesson 4-3 木探索
Lesson 4-4 計算量について知る
Chapter 4 練習問題
Extra Lesson 4-1 ランダウの記号
Extra Lesson 4-2 数当てゲーム
Extra Lesson 4-3 ビット演算を学ぶ

Chapter 5 ソート
Lesson 5-1 選択ソート
Lesson 5-2 バブルソート
Lesson 5-3 挿入ソート
Lesson 5-4 クイックソート
Lesson 5-5 マージソート
Lesson 5-6 ヒープソート
Chapter 5 練習問題
Extra Lesson 5-1 クイックソートの再帰の過程を出力する
Extra Lesson 5-2 再帰関数を用いたマージソート
Extra Lesson 5-3 Pythonのソート命令とheapqモジュールの使い方
Extra Lesson 5-4 ソートの計算量と計算時間

Chapter 6 ハッシュ
Lesson 6-1 ハッシュとは
Lesson 6-2 ハッシュ関数
Lesson 6-3 ハッシュテーブル
Lesson 6-4 衝突を回避する
Chapter 6 練習問題
Extra Lesson 6-1 暗号学的ハッシュ関数

Chapter 7 さまざまなアルゴリズムを学ぶ
Lesson 7-1 ユークリッドの互除法
Lesson 7-2 文字列探索
Lesson 7-3 最短経路問題
Chapter 7 練習問題
Extra Lesson 7-1 アルゴリズムを理解するヒント(処理の過程の出力)

Chapter 8 アルゴリズムを見える化する
Lesson 8-1 n次関数の曲線を描く
Lesson 8-2 フラクタル図形を描く
Lesson 8-3 迷路を解く過程を描く
Chapter 8 練習問題
Extra Lesson 8-1 アルゴリズムを使い分ける
Extra Lesson 8-2 マンデルブロー集合を描こう

Appendix
Appendix 1 Pythonのインストール方法
Appendix 2 テキストエディタと統合開発環境
Appendix 3 Pythonの記述ルール

練習問題の回答
索引
おわりに