紙の本
20010200
2000/12/26 15:33
2人中、2人の方がこのレビューが役に立ったと投票しています。
投稿者:日経ソフトウエア - この投稿者のレビュー一覧を見る
真正面からプログラミングすると実行時間がかかりすぎる問題,メモリー容量などの制限が厳しくてそのままコードに落とし込むのが難しい問題──。本書は,こうした問題をいかに解くかに関する読み物である。
取り上げている問題は「どこにでもありそうだが,いざ解こうとすると難しいことに気付く」というものばかりだ。例えば「英単語の辞書からpots,stop,topsといったアナグラム(同じ文字を並べ替えたもの)をすべて見つけ出すにはどうすればよいか」「1MBしかメモリーを使わずに,7桁の数字からなる1000万個のレコードをソートするにはどうすればよいか」といった感じである。どちらの問題も,たぶん最初に思いついた方法では解けないだろう。登場するアルゴリズムはソートや2分探索,ヒープなどでそれほど多くはないが,さまざまな問題に応用できるように書かれている。章ごとに練習問題と解答が付くのも役立ちそうだ。
Copyright (c)1998-2000 Nikkei Business Publications, Inc. All Rights Reserved.
紙の本
出版社コメント
2003/04/01 15:03
0人中、0人の方がこのレビューが役に立ったと投票しています。
投稿者:ピアソン・エデュケーション - この投稿者のレビュー一覧を見る
米国の計算機学会(ACM)に連載されて大評判となったコラムを単行本にまとめたものです。14年ぶりの改訂版です。
プログラマのために、実際に著者が遭遇した事例を取り上げて、現実問題に対処する方法、巧みなアイデアを紹介しています。
■目次
第1部 はじめに
コラム1 真珠貝を開いて
コラム2 「ああ(そうか)!」アルゴリズム
コラム3 データで決まるプログラムの構造
コラム4 正しいプログラムを書く
コラム5 あと少しの事
第2部 パフォーマンス
コラム6 パフォーマンスに関する考察
コラム7 封筒の裏で…
コラム8 アルゴリズムデザインのテクニック
コラム9 コードチューニング
コラム10 メモリの節約
第3部 作品
コラム11 ソート
コラム12 サンプリング問題
コラム13 探索
コラム14 ヒープ
コラム15 真珠の列
第1版のエピローグ
第2版のエピローグ
付録1 アルゴリズムのカタログ
付録2 評価クイズ
付録3 実行時間と使用メモリのコストモデル
付録4 コードチューニングのルール
付録5 探索のためのC++クラス
投稿元:
レビューを見る
アルゴリズムに関する書籍。全部読んでないけど分かりやすいです。問題と回答があるので漫然と読むだけで終わらないのがありがたいところ。
投稿元:
レビューを見る
内容は素晴らしいのですが、若干読みやすさや保守性を犠牲にしている感も。大規模開発では効率と同時にそれらも要求されるでしょうし。
投稿元:
レビューを見る
速く、効率的に。現在の進化した開発ツールでは
それほど気にしなくても
なんとなく動くアプリを開発できてしまいますが、
それでもプログラミングを仕事としている人、
したい人は必読です。
あ、SE歴1○年の私も、なりたい職業は
「プログラマー」です。。
投稿元:
レビューを見る
擬似コードで書いてあるので,言語を気にせず読める.書いてあ
る内容も,良いコードを書くためのアルゴリズムから考え方と多
岐にわたっており参考になる.
本の基本は,練習問題が大量についており,また解答も示されて
いるので,練習問題を解きながら頭の体操をしていく形式.
2008.08.27(Wed)読了
投稿元:
レビューを見る
なんつーかアルゴリズム厨な本だった。
おまいその書き方したら後で(私ゆとりだから)よめねーよ・・みたいなw
省メモリでエレガントちっくにやりたい人向け。
投稿元:
レビューを見る
この本で、プログラミングにおける問題の本質(そもそも何が問題なのか?)を考えることの重要性を学んだ。しかし、それはシンプルだが難しいことなのだけど。
内容は少しレベルが高く、1回読んでなんとなく、5年後にもう1回読んでようやっと理解できた。けれど、とても読み応えがあって、レベルアップ!した感じ。
投稿元:
レビューを見る
プログラミングとは、タイピングではありません。
現実の事象を観察し、そこから問題を定義する。
定義した問題に対するソリューションとしての、ソフトウェアの構造を設計すること。
そして、それを最も効率的に実装することです。
最適なソリューションを考える場合、これらの各段階は、単に時間に沿って一直線上に並んでいる「工程」のようなものではありません。
これらは、並んでいるというよりは、レイヤを形成しています。
プログラマには、複数のレイヤの問題を同時に考えるという能力が、常に要求されるのです。
そういう姿勢の必要性を改めて認識させてくれ、また優れたやりかたのサンプルを提供してくれる本です。
効率を重視しすぎているとか、チーム開発での可読性がどうとかいうことは、この本の主旨とは関係がない、あさっての方向へのツッコミです。
サブタイトルにもあるように、「本質を見抜い」てください。
投稿元:
レビューを見る
ソースコードの読み方の作者のオススメ
楽天ブックスにて購入。
アルゴリズムやデータ構造の選択によって、出来上がるプログラムは雲泥の差がある。だから事前にしっかり検討(本書内では『封筒裏の計算』と呼ばれている)して、効率的なプログラムを作成しましょうね。という話。
最終章は、実際のアルゴリズムの解説をしており、非常にわかりやすかった。
また、練習問題が充実しており、問題に飢えている人にはいいのではないだろうか。
投稿元:
レビューを見る
具体的な問題に対して、どのように考えアルゴリズムを適用していくかが書かれている。また、各章に10問以上の問題が提示されているため全て解こうとすればかなり長く楽しめる。
説明がわかりやすいのでしっかり読めば得るものが大きいと感じた。いままでしっかり理解していなかったヒープソートが自分のものになった感じ。
原著の出版から10年以上(初版からだと20年以上)経過しているが、愛用は現在でも通用する。
序文にコードのダウンロードサイトが書かれているが、現在は
http://www.cs.bell-labs.com/cm/cs/pearls/
に変わっている。
プログラミングによって問題を解決する必要がある人は、一度と言わずなんども読み返すべき一冊。
投稿元:
レビューを見る
できると思わなかったことを目の前で見せてくれる、目から鱗が落ちる本。
有名なアルゴリズムを羅列しているというよりは、いくつかの問題対するアプローチと実装の例をいくつか挙げている本という感じ。
投稿元:
レビューを見る
小難しくて頭にあまり入ってこなかった。内容を把握するには、数学の知識は必要かも。なので、さらっと読む感じの本ではない。
書いてあることは、達人プログラマー的な内容かなと思う。問題に取り組む姿勢とか、それを解決するために考慮すべきこととか、そういった普段の心構え的な話+アルゴリズムみたいな。
興味があれば読むといいけど、特にお勧めはしない。
投稿元:
レビューを見る
問題を解決するために、アルゴリズムとデータ構造を活用する能力を養う本です。
以前は別の出版社から発刊されていましたが、技術書の取り扱いを終了した後、新たな出版社に引き継がれました。 そのため、出版年は新しめに見えますが、実際には 2000年に出版された割と古い本です。
限られたメモリで問題を解く方法や、十分な実行速度を得る方法についての話題が豊富にあります。 扱っているアルゴリズムとデータ構造は、他の入門書でも取り上げられているようなものが多いですが、 大抵のアルゴリズムとデータ構造の本とは逆で、 まず現実の問題があって、そこにどんなアルゴリズムやデータ構造を適用していくか検討するという順序になっています。 そのため、より現実に近い形で、問題解決の考え方を学ぶことができます。
どんどん読み進めて思考の過程を楽しむのも良いですし、立ち止まって自分なりに考えを巡らしてみるのも良いでしょう。
各章の終わりに豊富な練習問題があります。 現実の問題を解決に導く方法をあれこれと考えさせられるような良問が多いですが、 解答例があったりなかったりするのが、ちょっと残念なところです。 「考えること自体が大事」といったところでしょうか。
最近では、メモリも速度も十分なことが多く、この手の話題を気にすること自体が少ないかも知れません。 本書の内容を実際のプログラムに無理に適応しようとするのではなく、 考え方・思考の過程を学ぶことが重要だと思います。
投稿元:
レビューを見る
問題のポイントを捉え適したデータの構造化を行う事の大切さと具体例が説明されている。扱っている問題に時代を感じるものが多いが、知らないとハマる事項が多い。最後にソート、サンプリング、探索、ヒープ構造、テキスト列の扱いをみながら基礎事項を確認する。