目次
第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 エラー対処法