《編程珠璣 第2版 英文版》是計(jì)算機(jī)科學(xué)方面的經(jīng)典名著。書的內(nèi)容圍繞程序設(shè)計(jì)人員面對(duì)的一系列實(shí)際問題展開。作者Jon Bentley 以其獨(dú)有的洞察力和創(chuàng)造力,引導(dǎo)讀者理解這些問題并學(xué)會(huì)解決方法,而這些正是程序員實(shí)際編程生涯中至關(guān)重要的。
《編程珠璣 第2版 英文版》的特色是通過一些精心設(shè)計(jì)的有趣而又頗具指導(dǎo)意義的程序,對(duì)實(shí)用程序設(shè)計(jì)技巧及基本設(shè)計(jì)原則進(jìn)行了透徹而睿智的描述,為復(fù)雜的編程問題提供了清晰而完備的解決思路。本書對(duì)各個(gè)層次的程序員都具有很高的閱讀價(jià)值。
非常有影響力的計(jì)算機(jī)科學(xué)著作之一 融深邃思想、實(shí)戰(zhàn)技術(shù)與趣味軼事于一爐的奇書 帶你真正領(lǐng)略計(jì)算機(jī)科學(xué)之美 多年以來,當(dāng)程序員們推選出心愛的計(jì)算機(jī)圖書時(shí),《編程珠璣》總是位于前列。正如自然界里珍珠出自細(xì)沙對(duì)牡蠣的磨礪,計(jì)算機(jī)科學(xué)大師Jon Bentley以其獨(dú)有的洞察力和創(chuàng)造力,從磨礪程序員的實(shí)際問題中凝結(jié)出一篇篇不朽的編程“珠璣”,成為世界計(jì)算機(jī)界名刊《ACM通訊》非常受歡迎的專欄,結(jié)集為兩部不朽的計(jì)算機(jī)科學(xué)經(jīng)典名著,影響和激勵(lì)著一代又一代程序員和計(jì)算機(jī)科學(xué)工作者。本書為第1卷,主要討論計(jì)算機(jī)科學(xué)中很本質(zhì)的問題:如何正確選擇和高效地實(shí)現(xiàn)算法。 在書中,作者選取許多具有典型意義的復(fù)雜編程和算法問題,生動(dòng)描繪了歷史上眾大師們?cè)谔剿鹘鉀Q方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程,引導(dǎo)讀者像真正的程序員和軟件工程師那樣富于創(chuàng)新性地思考,并透徹闡述和總結(jié)了許多獨(dú)特而精妙的設(shè)計(jì)原則、思考和解決問題的方法以及實(shí)用程序設(shè)計(jì)技巧。解決方案的代碼均以C/C++語言編寫,不僅有趣,而且有很大的實(shí)戰(zhàn)示范意義。每章后所附習(xí)題極具挑戰(zhàn)性和啟發(fā)性,書末給出了簡潔的解答。
Jon Bentley 世界知名的計(jì)算機(jī)科學(xué)家,被譽(yù)為影響算法發(fā)展的十位大師之一。他先后任職于卡內(nèi)基-梅隆大學(xué)(1976~1982)、貝爾實(shí)驗(yàn)室(1982~2001)和Avaya實(shí)驗(yàn)室(2001年至今)。在卡內(nèi)基-梅隆大學(xué)擔(dān)任教授期間,他培養(yǎng)了包括Tcl語言設(shè)計(jì)者John Ousterhout、Java語言設(shè)計(jì)者James Gosling、《算法導(dǎo)論》作者之一Charles E. Leiserson在內(nèi)的許多計(jì)算機(jī)科學(xué)大家。2004年榮獲Dr. Dobb's程序設(shè)計(jì)卓越獎(jiǎng)。
Part I: PRELIMINARIES 1
第一部分 基礎(chǔ)
Column 1: Cracking the Oyster 3
第1章 開 篇
A Friendly Conversation / 一次友好的對(duì)話
Precise Problem Statement / 準(zhǔn)確的問題描述
Program Design / 程序設(shè)計(jì)
Implementation Sketch / 實(shí)現(xiàn)概要
Principles / 原理
Problems / 習(xí)題
Further Reading / 深入閱讀
Column 2: Aha! Algorithms 11
第2章 啊哈!算法
Three Problems / 三個(gè)問題
Ubiquitous Binary Search / 無處不在的二分搜索
The Power of Primitives / 基本操作的威力
Getting It Together: Sorting / 排序
Principles / 原理
Problems / 習(xí)題
Further Reading / 深入閱讀
Implementing an Anagram Program / 變位詞程序的實(shí)現(xiàn)
Column 3: Data Structures Programs 21
第3章 數(shù)據(jù)決定程序結(jié)構(gòu)
A Survey Program / 一個(gè)調(diào)查程序
Form-Letter Programming / 格式信函編程
An Array of Examples / 一組示例
Structuring Data / 結(jié)構(gòu)化數(shù)據(jù)
Powerful Tools for Specialized Data / 用于特殊數(shù)據(jù)的強(qiáng)大工具
Principles / 原理
Problems / 習(xí)題
Further Reading / 深入閱讀
Column 4: Writing Correct Programs 33
第4章 編寫正確的程序
The Challenge of Binary Search / 二分搜索的挑戰(zhàn)
Writing the Program / 編寫程序
Understanding the Program / 理解程序
Principles / 原理
The Roles ofProgram Verification / 程序驗(yàn)證的角色
Problems / 習(xí)題
Further Reading / 深入閱讀
Column 5: A Small Matter of Programming 45
第5章 編程小事
From Pseudocode to C / 從偽代碼到C程序
A Test Harnes掃描算法
What Does It Matter? / 實(shí)際運(yùn)行時(shí)間
Principles / 原理
Problems / 習(xí)題
Further Reading / 深入閱讀
Column 9: Code Tuning 87
第9章 代碼調(diào)優(yōu)
A Typical Story / 典型的故事
A First Aid S結(jié)構(gòu)
Binary Search Trees / 二分搜索樹
Structures for Integers / 用于整數(shù)的結(jié)構(gòu)
Principles / 原理
Problems / 習(xí)題
Further Reading / 深入閱讀
A Real Searching Problem / 一個(gè)實(shí)際搜索問題
Column