珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造

珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造


珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造 珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造
ピアソンエデュケーション ピアソンエデュケーション Jon Bentley
¥ 3,570


  情報系の勉強をしたことのある人ならば、誰しもプログラムにおけるアルゴリズムの概念に触れたことがあるだろう。同じ動作をするプログラムでもエレガントなアルゴリズムを持つものとそうでないものの間には実行時間や堅牢性、リソースの利用量などにおいて大きな隔たりがあり、時には劇的なほどパフォーマンスの差があることも珍しくはない。一方でそのようなアルゴリズムを創出することがいかに難しいかも周知のことである。そのため現在では納期や効率に重点をおいたプログラミングが優先されることが多いが、単純で美しいプログラムを書くことは何より重要なことである。

  本書は著者を含めたプログラマーたちが扱った問題をベースに、エレガントなプログラムを書く際のさまざまなアドバイスや手法について解説したものである。大学でのアルゴリズム講義に登場してくる探索やソート、データ構造といった内容に触れており、現実的な題材の下に要求の定義、リソースの活用の仕方、動作する環境などのさまざまな側面からどのようにアルゴリズムを組むべきかといった、プログラムを組む上での原理原則を学べるように構成されている。

  このように題材となっている内容は決して特殊ではなく、プログラムを組んだ経験のある人ならば必ず触れたことのあるレベルなので、高級言語でのプログラムが書ける人ならば誰でも理解できる内容になっている。随所に登場する設問や読書案内も読者が学習する上で役に立つだろう。

  数理的な解析に重点を置く大学でのアルゴリズム講義の内容は実際のプログラミングに生かしにくいが、本書では応用や実際のコード化といった面に重点が置かれて説明がされているので実務上も大いに役立つ。自分のプログラミングを原則的、一般的な見地からよりよいものにしていくために必ず役立つ本だ。(斎藤牧人)


プログラミング作法
達人プログラマー―システム開発の職人から名匠への道
C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか
Code Complete第2版〈上〉―完全なプログラミングを目指して

■「プログラミング」と言う作業を見つめなおすのに最適。「設計する」と言う概念がよく分からない初級プログラマにも 評価5 日付2007-04-02
昨今のソフトウェア開発においては大抵がRDBMSベースのもので開発ツールも整っており、
アルゴリズムや計算量、メモリ使用量およびそれらの結果としてのパフォーマンスなどを
真剣に考えないと全く仕事にならないケースと言うのはあまり無いと思われ、それはそれで
幸せな時代とも言える。

本書はそんな「幸せな時代」に逆行する形となるが、上記で述べた内容(アルゴリズム、
計算量、メモリ使用量、パフォーマンス)をメインテーマとしており、それぞれ

1)提示された問題の解法を著者の視点で説明
2)ソースコードとして具現化
3)ソースコードについて更なる考察
4)同じテーマでの練習問題の提示

と言うスタイルで記されている。
特筆すべきなのは問題を解くにあたって筆者が最終的なソースコードにたどり着くまでの
「思考」(いわゆる設計作業)が文章や擬似コードや図表で表現されている事である。
他のアルゴリズム関連の書籍では大抵いきなり完成形のコードが出てきてそれらを説明して
終わりと言うパターンが多く、それではただの丸暗記であり、初級プログラマにとって
本当の意味でのトレーニングにはならないと思う。

個人的な見解だが特に初級プログラマのステップアップの壁に一つには「設計と言う概念の
理解」が挙げられると思っており、本書はそんな概念を掴みきれていない初級プログラマにとって

あぁ、プログラマの頭の中ってこんな風に試行錯誤しながらコードを紡ぎだすんだ!

と言う感覚が味わってもらえるような造りとなっており、非常に好感が持てる。
練習問題が結構多いので勉強会のネタにも使えそうである。
理解しながら読み進めるのは意外と大変かもしれないが読み終えた時にあなたは
一皮むけたプログラマになっているはずである。
■納得!アルゴリズムは重要 評価5 日付2005-06-19
「珠玉」ってなんて読むんだろう?興味を持ち、「本質を見抜く」というサブタイトルに惹かれました。プログラマーならば、アルゴリズムが重要であることは誰もが知っている、そしていくつかのアルゴリズムを知っていることだと思います。しかし本書を読むと、なぜアルゴリズムが重要なのか?どうすれば高速化できるのか?わかりやすくなるのか?メモリを減らせるのか?といった疑問が解き明かされていくのです。ページをめくる毎に”納得!”させられます。今までの漠然とした理解ではなく、本質を見抜いた理解に達すると、視界が開け非常に気持ちがいいものです。
だまされたと思って、一読ください。決して損はしません!!
■プログラマなら読むべき本 評価5 日付2004-05-02
今までいろいろなアルゴリズムの本を見てきましたが、
ほとんどが理論的であり、眠気を誘うものばかりでした。

この本は、アルゴリズムが何であるか?データ構造とは?を
根本から解説しているのですが、プログラマであれば、
非常に興味をそそられる内容になっています。
サンプルプログラム等は、CやC++で書かれていますが、

他の言語しか知らなくても十分理解できるレベルです。

参考本情報が豊富にありますし、少しずつ読んで見ようと思います。


■アルゴリズムって何? 評価5 日付2004-04-27
 今まで、アルゴリズム関係の本をいろいろと読んできた。しかし、この本は何なんだろう。自分ではベストだと思っていたアルゴリズムが、かなりの確率で否定される。

 「これ以上は無理かな?」と思っていた巨匠アルゴリズム+自己流アルゴリズムが、それ以上の高効率で処理されている。あるいは、「出来ないよ、そんなこと!」を「可能」にしている。まさに、「思い込み」は禁物だということを改めて感じさせてくれる、アルゴリズムにこだわる人には、まさに「目のウロコが落ちる」一冊。「速い」と「メモリを食う」は相反しないことに気づかされる。
 近年のコンピュータの高速化により、アルゴリズムの効率が無視されがちな企業プログラマには是非とも読んでいただきたい一冊。
 パズル的な面もあるので、アルゴリズムとパズルが好きな方は是非とも手に入れるべし!


■視点が変わる本です 評価5 日付2003-04-17
この本は、プログラミング言語を学ぶという本ではなく、どのようにしてアプローチをしていくかという本です。たとえば、ある著名人は、よいプログラマーとは、机上でまず詳細設計を完璧にするものだといっていましたが、まさにその通りのことが書いてあります。

いきなりプログラムを書くのではなく、色々なアプローチからプログラムの骨格を作り上げていくことが出来る一冊です。
中堅プログラマーの方が、上級プログラマーになるためには必須の本だと思います。私のバイブルでもあります。


⇒ もっと詳しく調べる
入門書
パソコン入門書
Macintosh入門書
アプリケーション入門書
データベース入門書
インターネット入門書
ホームページ入門書
プログラミング入門書
ネットワーク入門書
Windows入門書
コンピュータ用語集・参考書
コンピュータサイエンス
情報学・情報科学全般
アルゴリズム
人工知能
暗号理論
ロボット工学
計算機
システム管理・監査
データベース処理
セキュリティー管理
ソフトウェア開発
ハードウェア・周辺機器
パソコン
Macintosh
モバイル・iモード
デジタルカメラ
CD-R・DVD-R
周辺機器
OS
Windows入門書
Windows98
WindowsXP
Windows2000
Linux
Unix
MS-DOS
MacOS
FreeBSD
ネットワーク
ネットワーク入門書
TCP・IP
Ethernet
LAN
Routers・ルータ
ネットワーク参考図書
インターネット・Web開発
インターネット入門書
ブラウザ
e-ビジネス
通信・メール
Web開発
セキュリティー管理
ネット社会
IT・e-コマース
ビジネスとIT
ネットビジネス
情報・コンピュータ産業
情報社会
e-コマース
プログラミング
プログラミング入門書
Basic言語
Visual Basic
C言語
C++言語
Delphi
JAVA言語
LISP
Perl
Ruby
アプリケーション
ワープロソフト
一太郎
Microsoft Word
表計算ソフト
Microsoft Excel
Lotus 1-2-3
プレゼンテーションソフト
PowerPoint
データベース
データベース一般・入門書
FileMaker
dBASE
DB2
Microsoft Access
Oracle
SQL総合
SQL入門書
Microsoft SQL Server
PostgreSQL
MySQL
ブラウザ
Internet Explorer
Netscape
通信・メール
Microsoft Outlook
Netscape Communicator
グラフィックス
Photoshop
Illustrator
Dreamweaver
Flash
Fireworks
Shade
LightWave
AutoCAD
3D STUDIO MAX
GoLive
Photoshop Elements
DTP
DTP全般
QuarkXpress
PageMaker
InDesign
LATEX
DTM
ソフトウェア開発
デザイン・グラフィックス
Webデザイン
グラフィックス
DTPソフト
3D グラフィックス
コンピュータアート
Adobe
Macromedia
デジタルエンターテイメント
ロボット
音楽
ゲーム
コンピュータ・情報処理・各種試験対策
コンピュータ・情報処理一般
システムアナリスト
プロジェクトマネージャ
アプリケーションエンジニア
ソフトウェア開発技術者
テクニカルエンジニア(ネットワーク)
テクニカルエンジニア(データベース)
テクニカルエンジニア(システム管理)
テクニカルエンジニア(エンベデッドシステム)
情報セキュリティアドミニストレータ
上級システムアドミニストレータ
初級システムアドミニストレータ
システム監査
基本情報技術者
Microsoft Office Specialist
Oracle Master
インターネット検定
CAD利用技術者
白書・用語辞典・参考書
商品 検索リンク
本・書籍
音楽CD
DVD・ビデオ
ゲーム
パソコン・家電
ソフトウェア
家庭用品・キッチン用品
おもちゃ・ホビー
英語学習の教材
パソコン本
ゲーム攻略本
ビジネス・経済の本
ベストセラー検索リンク
おすすめ品
English