編輯推薦
史上具影響力的計算機科學著作之一
融深邃思想、實戰技術與趣味軼事於一爐的奇書
帶你真正領略計算機科學之美
多年以來,當程序員們推選齣心愛的計算機圖書時,《編程珠璣》總是位於前列。正如自然界裏珍珠齣自細沙對牡蠣的磨礪,計算機科學大師Jon Bentley以其獨有的洞察力和創造力,從磨礪程序員的實際問題中凝結齣一篇篇不朽的編程“珠璣”,成為世界計算機界名刊《ACM通訊》曆史上受歡迎的專欄,結集為兩部不朽的計算機科學經典名著,影響和激勵著一代又一代程序員和計算機科學工作者。本書為第二捲,秉承瞭一捲的風格,但本書涉及的範圍更廣,包括文檔、小語言、性能監視、圖形輸齣等。
在書中,作者選取許多具有典型意義的復雜編程和算法問題,生動描繪瞭曆史上眾大師們在探索解決方案中發生的軼事、走過的彎路和不斷精益求精的曆程,引導讀者像真正的程序員和軟件工程師那樣富於創新性地思考,並透徹闡述和總結瞭許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。每章後所附習題極具挑戰性和啓發性,書末給齣瞭簡潔的解答。
內容簡介
本書是計算機科學方麵的經典名著《編程珠璣》的姊妹篇,講述瞭對於程序員有共性的知識。本書延續瞭《編程珠璣》的特色,通過一些精心設計的有趣而又頗具指導意義的程序,對實用程序設計技巧及基本設計原則進行透徹而睿智的描述,為復雜的編程問題提供清晰而完備的解決思路。書中涵蓋瞭程序員操縱程序的技術、程序員取捨的技巧、輸入和輸齣設計以及算法示例,這些內容結閤成一個有機的整體,如一串串珠璣展示給程序員。本書對各個層次的程序員都具有很高的閱讀價值。
作者簡介
Jon Bentley 計算機科學傢,被譽為影響算法發展的十位大師之一。他先後任職於卡內基-梅隆大學(1976—1982)、貝爾實驗室(1982—2001)和Avaya實驗室(2001年至今)。在卡內基-梅隆大學擔任教授期間,他培養瞭包括Tcl語言設計者John Ousterhout、Java語言設計者James Gosling、《算法導論》作者之一Charles E.Leiserson在內的許多計算機科學大傢。2004年榮獲Dr. Dobb's程序設計卓越奬。
目錄
Part I: PROGRAMMING TECHNIQUES 1
第一部分 編程技術
Column 1: Profilers 3
第1章 性能監視工具
Computing Primes / 計算素數
Using Profilers / 使用性能監視工具
A Specialized Profiler / 專用的性能監視工具
Building Profilers / 開發性能監視工具
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Column 2: Associative Arrays 15
第2章 關聯數組
Associative Arrays in Awk / Awk中的關聯數組
A Finite State Machine Simulator / 有窮狀態機模擬器
Topological Sorting / 拓撲排序
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Column 3: Confessions of a Coder 27
第3章 程序員的懺悔
Binary Search / 二分搜索
Selection / 選擇算法
A Subroutine Library / 子程序庫
Principles / 原理
Problems / 習題
Column 4: Self-Describing Data 37
第4章 自描述數據
Name-Value Pairs / 名字—值對
Provenances in Programming / 記錄來曆
A Sorting Lab / 排序實驗
Principles / 原理
Problems / 習題
Part II: TRICKS OF THE TRADE 45
第二部分 實用技巧
Column 5: Cutting the Gordian Knot 47
第5章 劈開戈爾迪之結
A Quiz / 小測驗
Some Solutions / 解答
Hints / 提示
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Debugging / 調試(邊欄)
Column 6: Bumper-Sticker Computer Science 57
第6章 計算機科學箴言集
Coding / 編碼
User Interfaces / 用戶界麵
Debugging / 調試
Performance / 性能
Documentation / 文檔
Managing Software / 軟件管理
Miscellaneous Rules / 其他
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Column 7: The Envelope is Back 69
第7章 粗略估算
A Warm-Up for Cool Brains / 頭腦熱身
Performance Rules of Thumb / 性能的經驗法則
Little’s Law / Little定律
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Quick Calculations in Everyday Life / 日常速算(邊欄)
Column 8: The Furbelow Memorandum 77
第8章 人員備忘錄
The Memo / 備忘錄
Principles / 原理
Further Reading / 深入閱讀
Part III: I/O FIT FOR HUMANS 81
第三部分 人性化I/O
Column 9: Little Languages 83
第9章 小語言
The Pic Language / Pic語言
Perspective / 視角
Pic Preprocessors / Pic預處理器
Little Languages for Implementing Pic / 用來實現Pic的小語言
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Column 10: Document Design 101
第10章 文檔設計
Tables / 錶格
Three Design Principles / 三條設計原則
Figures / 插圖
Text / 文本
The Right Medium / 閤適的媒介
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
A Catalog of Pet Peeves / 次要問題目錄(邊欄)
Column 11: Graphic Output 115
第11章 圖形化輸齣
A Case Study / 實例研究
A Sampler of Displays / 顯示結果取樣
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Napoleon’s March to Moscow / 拿破侖遠徵莫斯科(邊欄)
Column 12: A Survey of Surveys 127
第12章 對調查的研究
The Problems of Polling / 有關民意調查的問題
The Languages / 語言
The Pictures / 圖片
Principles / 原理
Problems / 習題
Part IV: ALGORITHMS 137
第四部分 算法
Column 13: A Sample of Brilliance 139
第13章 絕妙的取樣
A Sampling of Sampling Algorithms / 取樣算法一瞥
Floyd’s Algorithm / Floyd算法
Random Permutations / 隨機排列
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Column 14: Birth of a Cruncher 147
第14章 / 編寫數值計算程序
The Problem / 問題
Newton Iteration / 牛頓迭代
A Great Place to Start / 良好的起點
The Code / 代碼
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
A Big Success Story / 數值算法的力量(邊欄)
Column 15: Selection 159
第15章 選擇
The Problem / 問題
The Program / 程序
Analysis of Run Time / 運行時間分析
Principles / 原理
Problems / 習題
Further Reading / 深入閱讀
Appendix 1: The C and Awk Languages 171
附錄A C和Awk語言
Appendix 2: A Subroutine Library 175
附錄B 子程序庫
Solutions to Selected Problems 183
部分習題答案
前言/序言
編程珠璣 續 英文版 下載 mobi epub pdf txt 電子書