目次
第1章 しまう ─ データ構造
- 1-1 どれを選べば楽々? ─ データ構造
 - 1-2 積み上げる ─ スタック
 - 1-3 早い者順に並ぶ ─ キュー
 - 1-4 使うデータ構造しだいで答えを出す手間が変わる
 - 1-5 パソコンをネジ回しで開けると見えるヒント ─ メモリ
 - 1-6 メモリにそっくり!? ─ 配列
 - 1-7 チャレンジ! 配列を使ったプログラム
 - 【コラム】LinuxにおけるPythonのインストール
 - 1-8 矢印があれば移動が減る ─ 連結リスト
 - 1-9 枝分かれを表現 ─ 木と木構造
 - 1-10 二分木を使って式を表現する
 
第2章 みつける ─ 探索のアルゴリズム
- 2-1 たくさんのものから探そう! ─ 探索
 - 2-2 チャレンジ! ユーザのデータをしまうプログラム
 - 2-3 端から探そう ─ 線形探索法
 - 2-4 アルゴリズムの評価はおおざっぱに ─ O記法
 - 【コラム】関数
 - 2-5 チャレンジ! 線形探索法のプログラム
 - 2-6 探しものは前に? それとも後ろに? ─ 二分探索法
 - 2-7 チャレンジ! 最悪と最良のケースにおける計算量を求める
 - 2-8 一撃で見つける ─ ハッシュ法
 - 2-9 ハッシュ値が衝突したらどうする?
 - 2-10 チャレンジ! ハッシュ法でデータを探索するプログラム
 
第3章 ならべる ─ ソートのアルゴリズム
- 3-1 ならべてみよう! ─ ソート
 - 3-2 チャレンジ! ソートのプログラム
 - 3-3 列のどこに入れる? ─ 挿入ソート
 - 3-4 挿入ソートの計算量,最良のケース
 - 【コラム】番兵
 - 3-5 挿入ソートの計算量,最悪のケース
 - 3-6 最強はどれだ? ─ 選択ソート
 - 3-7 選択ソートの計算量
 - 3-8 ソート済みデータが浮かんでくる? ─ バブルソート
 - 3-9 データを振り分ける ─ クイックソート
 - 3-10 クイックソートの計算量,最良と最悪のケース
 - 3-11 クイックソートの手順
 - 3-12 安定なソートアルゴリズム
 - 3-13 一見当たり前でも高性能 ─ マージソート
 - 3-14 マージソートの手順
 - 3-15 マージソートの計算量
 - 3-16 マージソートの領域計算量
 
第4章 かくす ─ 暗号とセキュリティ
- 4-1 何を知られると解読されてしまうのか? ─ 暗号の基礎
 - 4-2 鍵をどうやって渡す? ─ 共通鍵方式
 - 4-3 相手に渡した鍵は知られても大丈夫 ─ 公開鍵方式
 - 4-4 本当に本人? ─ 認証
 - 4-5 チャレンジ! 公開鍵方式を体験
 
第5章 かんがえる? ─ 人工知能(AI)
- 5-1 モデルは神経細胞 ─ ディープラーニング
 - 5-2 チャレンジ! ニューラルネットワークにおける計算
 - 5-3 どれとどれが仲間? ─ クラスタリング
 
- 付録A Pythonのインストール
 - 付録B エラー対処法