珠玉のプログラミング

珠玉のプログラミング

本質を見抜いたアルゴリズムとデータ構造
原書名 Programming Pearls
著者名 小林 健一郎
発行元 丸善出版
発行年月日 2000年10月
判型 A5 210×148
ページ数 324ページ
ISBN 978-4-621-06607-2
Cコード 3004
ジャンル 電気・電子・情報工学 >  情報・コンピュータ >  言語・プログラミング

内容紹介

本書は著者を含めたプログラマーたちが扱った問題をベースに、エレガントなプログラムを書く際のさまざまなアドバイスや手法について解説。大学でのアルゴリズム講義に登場してくる探索やソート、データ構造といった内容に触れており、現実的な題材の下に要求の定義、リソースの活用の仕方、動作する環境などのさまざまな側面からどのようにアルゴリズムを組むべきかといった、プログラムを組む上での原理原則を学べるように構成されている。題材となっている内容はプログラムを組んだ経験のある人ならば必ず触れたことのあるレベルなので、高級言語でのプログラムが書ける人ならば誰でも理解できる内容になっている。随所に登場する設問や読書案内も読者が学習する上で役に立つだろう。自分のプログラミングを原則的、一般的な見地からよりよいものにしていくために必携の一冊。

目次

序文
第Ⅰ部 はじめに
 コラム1――真珠貝を開いて
  1.1 フレンドリーな会話
  1.2 問題の正確な定義
  1.3 プログラムデザイン
  1.4 コードのスケッチ
  1.5 原則
  1.6 問題
  1.7 読書案内 
 コラム2――「ああ(そうか)!」アルゴリズム
  2.1 3つの問題
  2.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 読書案内
 コラム4――正しいプログラムを書く
  4.1 2分探索に挑戦
  4.2 プログラムを書く
  4.3 プログラムを理解する
  4.4 原則
  4.5 プログラム検証の役割
  4.6 問題
  4.7 読書問題
 コラム5――あと少しの事
  5.1 疑似コードからCへ
  5.2 テスト
  5.3 表明の技法
  5.4 テストの自動化
  5.5 実行時間の計測
  5.6 完全なプログラム
  5.7 原則
  5.8 問題 
  5.9 読書案内
  5.10 デバック
第Ⅱ部 パフォーマンス
 コラム6――パフォーマンスに関する考察
  6.1 あるケーススタディ
  6.2 デザインレベル
  6.3 原則
  6.4 問題
  6.5 読書案内
 コラム7――封筒の裏で・・・
  7.1 基本的な素養
  7.2 パフォーマンスの評価
  7.3 安全係数
  7.4 リトル(Little)の法則
  7.5 日常生活の速算
 コラム8――アルゴリズムデザインのテクニック
  8.1 問題と単純なアルゴリズム
  8.2 2乗のアルゴリズム
  8.3 分割して征服するアルゴリズム
  8.4 走査アルゴリズム
  8.5 それがどういうことか
 コラム9――コードチューニング
  9.1 典型的な話
  9.2 応急手当的なチューニング
  9.3 大手術的なコードチューニング――2分探索で
  9.4 原則
  9.5 問題
 コラム10――メモリの節約
  10.1 キーポイントは単純さ
  10.2 典型的な例
  10.3 データ空間でのテクニック
  10.4 プログラミングコードが使うメモリの節約
  10.5 大きな節約の例
第Ⅲ部 作品
 コラム11――ソート
  11.1 挿入ソート
  11.2 簡単なクイックソート
  11.3 よりよいクイックソート
  11.4 原則
  11.5 問題
  11.6 読書案内
 コラム12――サンプリング問題
  12.1 問題
  12.2 1つの謎
  12.3 デザイン空間
  12.4 原則
  12.5 問題
  12.6 読書案内
 コラム13――探索
  13.1 インターフェイス
  13.2 線形構造
  13.3 2分探索木
  13.3 整数のためのデータ構造
  13.5 原則
  13.6 問題
  13.7 読書案内  
  13.8 実際の探索問題
 コラム14――ヒープ
  14.1 データ構造
  14.2 2つの重要な関数
  14.3 順位キュー(プライオリティーキュー)
  14.4 ソートアルゴリズム
  14.5 原則
  14.6 問題
  14.7 読書案内
 コラム15――真珠の列
  15.1 単語
  15.2 フレーズ
  15.3 テキストを生成する
  15.4 原則
  15.5 問題
  15.6 読書案内
 第1版のエピローグ
第2版のエピローグ
  付録1――アルゴリズムのカタログ
   ・整列(ソート)
   ・探索(サーチ)
   ・他のセットのアレゴリズム
   ・文字列に関するアレゴリズム
   ・ベクトル(1次の配列)と行列(2次の配列)に関するアルゴリズム
   ・ランダムなもの
   ・数値アルゴリズム
  付録2――評価クイズ
  付録3――実行時間と使用メモリのコストモデル
  付録4――コードチューニングのルール
   ・時間節約のためにメモリを使う
   ・メモリ節約のために時間を使う
   ・ループ
   ・論理
   ・プロシージャ(関数)のルール
   ・表現
  付録5――探索のためのC++クラス

定価:本体3,400円+税
在庫:在庫あり