アルゴリズム

プログラミングに活かすデータ構造とアルゴリズムの基礎知識(UNIX MAGAZINE LIBRARY)

今泉貴史
アスキーメディアワークス

はじめに

1章 配列

  • 1.1 添字
  • 1.2 ポインタ
  • 1.3 添字型
  • 1.4 多次元配列
  • 1.5 動的配列
  • 1.6 実行時の検査

2章 再帰的データ構造

  • 2.1 配列の問題点
  • 2.2 配列を使った解決方法
  • 2.3 ポインタの利用
  • 2.4 再帰的データ構造
  • 2.5 リンクされたリスト
  • 2.6 二重にリンクされたリスト
  • 2.7 リストを使う便利なデータ構造
  • 2.8 その他の言語の場合

3章 探索

  • 3.1 探索とは何か
  • 3.2 逐次探索
  • 3.3 番兵
  • 3.4 整列済み配列
  • 3.5 リスト構造での探索
  • 3.6 自己再構成リスト
  • 3.7 二分探索
  • 3.8 内挿探索
  • 3.9 手間の見積もり方

4章 木構造

  • 4.1 二分探索の探索系列
  • 4.2 木構造とは何か
  • 4.3 二分探索木
  • 4.4 AVL木
  • 4.5 2-3木、2-3-4木
  • 4.6 B木
  • 4.7 トライ、パトリシア

5章 スキップリスト

  • 5.1 リストでの二分探索
  • 5.2 スキップリストの概要
  • 5.3 スキップリストの実装

6章 ハッシュ法

  • 6.1 ハッシュ法の概要
  • 6.2 分離連鎖法
  • 6.3 線形探査法
  • 6.4 二重ハッシュ法

7章 文字列探索

  • 7.1 力ずくの探索法
  • 7.2 KMP法
  • 7.3 BM法
  • 7.4 Rabin-Karp法

8章 基礎的な整列アルゴリズム

  • 8.1 整列問題
  • 8.2 シェルソート
  • 8.3 クイックソート

9章 最悪の場合を保証する整列法

  • 9.1 マージソート
  • 9.2 ヒープソート

10章 比較によらない整列法

  • 10.1 七並べで整列
  • 10.2 分配計数法
  • 10.3 ビンソート
  • 10.4 基数交換v法
  • 10.5 直接基数法
  • 10.6 基数整列法の改良

あとがきに代えて - アルゴリズムの選び方
参考文献
索引