アルゴリズム

よくわかるアルゴリズムの基本と仕組み

杉浦賢

秀和システム

はじめに

第1章 アルゴリズムの基礎

  • 1-1 「プログラム」とは
  • 1-2 アルゴリズムとは
  • 1-3 アルゴリズムを記述する方法
  • コラム C言語に出会うまで

第2章 フローチャートと構造化プログラミング

  • 2-1 フローチャートとは
  • 2-2 フローチャート記号
  • 2-3 フローチャートの構造
  • 2-4 構造化プログラミングとは
  • 2-5 構造化のためのルール
  • コラム スパゲティプログラム

第3章 変数とデータ構造

  • 3-1 データ型と変数名-変数の基本①
  • 3-2 代入と参照-変数の基本②
  • 3-3 配列-データ構造の基本①
  • 3-4 リスト-データ構造の基本②
  • 3-5 変数と配列の実装
  • 3-6 関数定義-構造化プログラミング①
  • 3-7 段階的詳細化-構造化プログラミング②
  • コラム 「while文」を使うか、「for文」を使うか

第4章 簡単なアルゴリズム

  • 4-1 合計値を求める(合計処理)
  • 4-2 データの個数を求める(件数カウント)
  • 4-3 平均値を求める(平均算出)
  • 4-4 最大値を求める(最大値)
  • 4-5 最小値を求める(最小値)
  • コラム 「==」と「=」の記述ミスに注意

第5章 番人を使ったアルゴリズム

  • 5-1 文字列の長さを調べる
  • 5-2 ある値より大きい(小さい)要素の検索
  • 5-3 共通要素の検索
  • コラム 複合的な条件式は、いつもすべて実行されるのか

第6章 ソートのアルゴリズム

  • 6-1 単純選択法
  • 6-2 バブルソート(単純交換法)
  • 6-3 単純挿入法
  • 6-4 シェルソート

第7章 探索アルゴリズム

  • 7-1 線形探索(リニアサーチ)
  • 7-2 二分探索(バイナリサーチ)①
  • 7-3 二分探索(バイナリサーチ)②
  • 7-4 文字列の照合

第8章 再帰を利用したアルゴリズム

  • 8-1 再帰とは
  • 8-2 最大公約数を求める
  • 8-3 階乗を求める
  • 8-4 クイックソート
  • コラム マクロ文字列をどんどん利用しよう

第9章 その他のアルゴリズム

  • 9-1 3ステップで実行する-単一ファイルの処理①
  • 9-2 表形式でデータを管理する-単一ファイルの処理②
  • 9-3 複数ファイルの処理(ファイルのマージ)
  • 9-4 ニュートン法
  • 9-5 台形法
  • 9-6 図形に関するアルゴリズム
  • 9-7 ダイクストラ法の考え方-グラフに関するアルゴリズム①
  • 9-8 ダイクストラ法の考え方-グラフに関するアルゴリズム②
  • コラム 時代はC++、そしてJavaへ

第10章 アルゴリズムの評価

  • 10-1 計算量の求め方-計算量の評価①
  • 10-2 計算量の求め方-計算量の評価②
  • 10-3 正当性の評価
  • コラム プロファイラを活用しよう

第11章 ポインタ―効率的なプログラミングのために

  • 11-1 アドレス値を保持する変数-C言語のポインタ①
  • 11-2 ポインタの使い方-C言語のポイントな②
  • 11-3 ポインタによる配列要素サクセス
  • 11-4 ポインタを使ってプログラムを書き直す
  • コラム ポインタ宣言時の「*」の位置

索引