関連サイト
本書の関連ページが用意されています。
内容紹介
2004年に刊行した『アルゴリズムC 新版』の復刊である。
本書は、世界の標準教科書として大変高い評価を得ている。直感的でわかりやすい説明、アルゴリズムの振舞いを示す数多くの見事な図、簡潔で具体的なコード、最新の研究成果に基づく実用的アルゴリズムの選択、難解な理論的結果のほどよい説明などがその特長である。
ロバート・セジウィックの「アルゴリズム」は,標準的な教科書として,すでに確固たる定評をかちえており,数多くの類書の中で,世界的にみてもたぶん最もよく読まれているものであろう.本書は,原書「Algorithms in C」の第3版(第1部から第4部まで)の翻訳である.ご覧のように「基礎」,「データ構造」,「整列」,「探索」を扱っている.この「アルゴリズム」シリーズの際立った特徴,すなわち,直感的でわかりやすい説明,アルゴリズムの振舞いを示す数多くの見事な図,簡潔で具体的なコード,最新の研究成果に基づく実用的アルゴリズムの選択,難解な理論的結果のほどよい説明,といった点が本書にも受け継がれている.
原書の第1版は,1996年に3分冊として翻訳出版した.幸いこの3分冊は,多くの情報関係の専門学科などで入門的教科書に採用され,またアルゴリズムの自習書として広い支持をえてきた.本書(第3版)は,扱う話題という点でみると,3分冊(第1版)のうち,第1分冊全部と第2分冊の約3分1に対応する.しかし本書は,著しく厚くなっており,第1版のこの部分が併せて約320頁であるのに対して,約620頁になっている.これにより,第1版で説明がもう一息ほしいという部分が充実し,多くの話題が新たに取り上げられ,特に,最近10年の研究成果が数多く取り入れられている.それで,本書の読者層は,先の3分冊よりもっと広くなるものと予想される.たとえば,情報関係の大学院学生の自習書,現場の技術者の参照用の本として,一層役立つものと期待できる.もちろん3分冊の方は,相対的にみて,技術的細部への深入りをさけ,豊富な話題を手短かに説明しており,さらに,大部分の内容が現在にも通用するので,それはそれで,本書とは別の存在価値があり続けると思う.
訳者の苦労の一端を付け加えさせてほしい.本書のように大部の専門書では,どうしても誤りが避けられないが,原書は,増刷のたびに修正を続けている.本訳書では,原書に依然残っていた誤りを見つけ,文字通り数え切れないほどの多くの修正をした.もちろん,当然のことであるが,気がつかずに残った誤りもあろうし,もしかしたら別の誤りが混入した部分もあるかもしれない.しかし,本訳書は,全体として原書よりも正確になり,この点ではるかに良くなったものと信じる.
最後に,訳者とその関係者は,非常に多くの時間と知恵をそそぎ,やっとここに出版できたことでほっとしている.3分冊の旧版と同様に,本書が読者の方々に受け入れられて,お役に立てば,大変うれしく思います.
(「訳者あとがき」より)
書誌情報
- 著者: Robert Sedgewick(著), 野下浩平, 星守, 佐藤創, 田口東(訳)
- 発行日: 2018-02-27 (紙書籍版発行日: 2018-02-27)
- 最終更新日: 2018-02-27
- バージョン: 1.0.0
- ページ数: 656ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: 近代科学社
対象読者
プログラミング言語,データ構造,ソート,整列,探索に興味がある読者
著者について
Robert Sedgewick
野下浩平
1966年東京大学工学部計数工学科卒業。電気通信大学名誉教授工学博士
星守
1967年東京大学工学部計数工学科卒業。電気通信大学名誉教授工学博士
佐藤創
1967年東京大学工学部計数工学科卒業。元専修大学ネットワーク情報学部教授博士(工学)
田口東
1974年東京大学工学部計数工学科卒業。現職中央大学理工学部情報工学科教授工学博士
目次
まえがき
第1部 基礎
第1章 はじめに
- 1.1 アルゴリズム
- 1.2 例題――連結性問題
- 1.3 合併-発見アルゴリズム
- 1.4 展望
- 1.5 話題の概要
第2章 アルゴリズム解析の原理
- 2.1 実現と実験による解析
- 2.2 アルゴリズムの解析
- 2.3 関数の増加度
- 2.4 O記法
- 2.5 基本漸化式
- 2.6 アルゴリズム解析の例
- 2.7 保証,予測,限界
- 第1部の参考文献
第2部 データ構造
第3章 基本データ構造
- 3.1 部品
- 3.2 配列
- 3.3 リンクによるリスト
- 3.4 初等的なリスト処理
- 3.5 リストに対する記憶領域の割付け
- 3.6 文字列
- 3.7 複合データ構造
第4章 抽象データ型
- 4.1 抽象オブジェクトとオブジェクトの集合
- 4.2 プッシュダウンスタック抽象データ型
- 4.3 スタック抽象データ型クライアントの例
- 4.4 スタック抽象データ型の実現
- 4.5 新しい抽象データ型の生成
- 4.6 FIFOキューと一般化キュー
- 4.7 要素の重複と添字要素
- 4.8 一級抽象データ型
- 4.9 応用に基づく抽象データ型
- 4.10 展望
第5章 再帰と木
- 5.1 再帰アルゴリズム
- 5.2 分割統治法
- 5.3 動的計画法
- 5.4 木
- 5.5 2分木の数学的な性質
- 5.6 木の走査
- 5.7 再帰的な2分木アルゴリズム
- 5.8 グラフの走査
- 5.9 展望
- 第2部の参考文献
第3部 整列
第6章 初等的な整列法
- 6.1 ゲームのルール
- 6.2 選択整列法
- 6.3 挿入整列法
- 6.4 バブル整列法
- 6.5 初等的整列法の性能
- 6.6 シェルソート
- 6.7 ほかの型のデータの整列法
- 6.8 添字整列とポインタ整列
- 6.9 リンクリストの整列
- 6.10 キー添字計数法
第7章 クイックソート
- 7.1 基本アルゴリズム
- 7.2 クイックソートの性能
- 7.3 スタックの大きさ
- 7.4 小さい部分ファイル
- 7.5 3要素の中央値
- 7.6 重複したキー
- 7.7 文字列とベクトル
- 7.8 選択
第8章 併合とマージソート
- 8.1 2ウェイ併合
- 8.2 抽象的なその場の併合
- 8.3 トップダウン型マージソート
- 8.4 基本アルゴリズムの改良
- 8.5 ボトムアップ型マージソート
- 8.6 マージソートの性能
- 8.7 リンクリストによるマージソート
- 8.8 再帰呼出しの再考
第9章 順位キューとヒープソート
- 9.1 初等的な実現
- 9.2 ヒープのデータ構造
- 9.3 ヒープのアルゴリズム
- 9.4 ヒープソート
- 9.5 順位キューADT
- 9.6 添字による順位キュー
- 9.7 2項キュー
第10章 基数整列
- 10.1 ビット,バイト,ワード
- 10.2 2進クイックソート
- 10.3 MSD 基数整列法
- 10.4 3分岐基数クイックソート
- 10.5 LSD 基数整列法
- 10.6 基数整列法の性能
- 10.7 線形未満の時間の整列法
第11章 特殊目的の整列法
- 11.1 Batcher奇偶マージソート
- 11.2 整列ネットワーク
- 11.3 外部整列
- 11.4 整列-併合の実現
- 11.5 並列的整列-併合
- 第3部の参考文献
第4部 探索
第12章 記号表と2分探索木
- 12.1 記号表抽象データ型
- 12.2 キー添字探索
- 12.3 逐次探索
- 12.4 2分探索法
- 12.5 2分探索木
- 12.6 BSTの性能特性
- 12.7 間接的2分探索木
- 12.8 根への挿入
- 12.9 他のADT関数のBSTによる実現
第13章 平衡木
- 13.1 ランダム化BST
- 13.2 スプレイBST
- 13.3 トップダウン2-3-4木
- 13.4 赤黒木
- 13.5 スキップリスト
- 13.6 性能特性
第14章 ハッシュ法
- 14.1 ハッシュ関数
- 14.2 分離連鎖法
- 14.3 線形探査法
- 14.4 2重ハッシュ法
- 14.5 動的ハッシュ法
- 14.6 まとめ
第15章 基数探索
- 15.1 離散探索木
- 15.2 トライ
- 15.3 パトリシア
- 15.4 マルチウェイ基数探索法
- 15.5 テキスト-文字列-索引アルゴリズム
第16章 外部探索
- 16.1 ゲームのルール
- 16.2 索引順アクセス法
- 16.3 B木
- 16.4 拡張可能ハッシュ法
- 16.5 まとめ
- 第4部の参考文献