目次
Chapter1 つかめ!プログラマの思考法
すべてのプログラムは入力、演算、出力で動いている
上手な「コメント」はプログラムをフローチャートのように見せる
アルゴリズムは、プロ野球中継のように実況するとわかりやすい
「再帰」には、プログラマを夢中にさせる魅力がある
「自己参照構造体」にC言語の美しきゴールを見た
オブジェクト指向は便利な考え方の一つ
Chapter2 アルゴリズム&テクニック
意外と知られていない「バケツソート」
プログラムの実行速度を向上させる「キャッシュ」
探索や整列を効率化する「番兵」を活用しよう
あれこれと工夫できる「べき乗」の計算
じゃんけんの勝敗を判定する方法を工夫しよう
状態の変化を考えて2種類の電卓プログラムを作る
基本的なアルゴリズムに工夫を加える
基本的なソートアルゴリズムを組み合わせて効率的な処理を実現する
効率よく「1」の個数を数える
もっと簡単な解法を考えよう
Chapter3 必修アルゴリズム21
最短経路を求めるダイクストラ法
ナップザック問題
ガウスの消去法
逆ポーランド記法
クイックソート
エイトクイーン
ボイヤームーア法
状態遷移図を使った構文解析
グリーディ法
ヒープとヒープソート
バブルソートをコムソートに改良する
素数の判定とエラトステネスのふるい
マージソート(分割統治法と再帰呼び出し)
シンプレックス法(解説編)
シンプレックス法(プログラミング編)
最小二乗法で理論式にフィッティング
迷路から脱出するアルゴリズム
乱数を生成するアルゴリズム
素因数分解とRSA暗号
パリティ・ビットとハミング符号
再帰と動的計画法
Chapter4 達人からの挑戦状
このプログラムがクラッシュする理由を説明できますか
このアルゴリズムには、きっと感動しますよ
プロとしてより良い改造方法はどれか
自分自身のソースコードを表示するプログラムを作成せよ
このプラグラムをできるだけ短くせよ
再帰呼び出しでnの階乗を求める関数を4種類書け
英語として読めるプログラムを作成せよ
if文を使わずに分岐処理を作成せよ
一様乱数を使って正規乱数を作り出せ
フィールドのアクセサを用意するメリットを述べよ
うるう年を判定するメソッドのテストコードを記述せよ
ポインタを使ったコードの誤りを見つけよ
Chapter5 早わかりGoFデザインパターン
GoFって何?/Mediatorパターン
Iteratorパターン/Adapterパターン
Factory Methodパターン/Abstract Factoryパターン
Facadeパターン/Chain of Responsibilityパターン
Builderパターン/Prototypeパターン
Stateパターン/Observerパターン
Singletonパターン/Flyweightパターン
Bridgeパターン/Decoratorパターン
Compositeパターン/Proxyパターン
Commandパターン/Strategyパターン
Template Methodパターン/Visitorパターン
Interpreterパターン/Mementoパターン