编程珠玑(英文版・第2版) | PDF下载|ePub下载
类别: 计算机
作者:[美] Gayle Laakmann McDowell
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
出版社: 人民邮电出版社
原作名: Cracking the coding interview:150 programming questions and solutions,fifth edition
译者:李琳骁/漆犇
出版年: 2013-11
页数: 372
定价: 59.00元
装帧: 平装
ISBN: 9787115332912
内容简介 · · · · · ·
多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”。这些文章是《ACM通讯》最受欢迎的专栏文章,最终结集为两部书出版。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。
在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众多大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者开展创新性的思考。书中透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。
· · · · · ·
作者简介 · · · · · ·
1953年2月20日出生于美国加州长滩。1974年毕业于斯坦福大学数学系,1976年获北卡罗来纳大学博士学位。他先后任职于卡内基一梅隆大学(1976—1982)、贝尔实验窒(1982—2001)和Avaya实验室(2001年至今)。在卡内基一梅隆大学任教期间。他培养了许多后来知名的计算机大家,包括Scribe的开发者Brian Reid,Tcl语言设计者John Ousterhout。Java专家Joshua Btoch,Java语言设计者James Gosling,《算法导论》作者之—Charles Leiserson。2004年荣获Dr.Dobb’s程序设计卓越奖。
目录 · · · · · ·
CONTENTS
Part I: PRELIMINARIES 1
Column 1: Cracking the Oyster 3
A Friendly Conversation ~ Precise Problem Statement ~ Program Design ~
Implementation Sketch. Principles ~ Problems. Further Reading
Column 2: Aha! Algorithms 11
Three Problems ~ Ubiquitous Binary Search ~ The Power of Primitives ~
Getting It Together: Sorting. Principles. Problems. Further Reading.
Implementing an Anagram Program
Column 3: Data Structures Programs 21
A Survey Program ~ Form-Letter Programming ~ An Array of Examples ~
Structuring Data. Powerful Tools for Specialized Data ~ Principles ~ Prob-
lems ~ Further Reading
Column 4: Writing Correct Programs 33
The Challenge of Binary Search ~ Writing the Program ~ Understanding the
Program. Principles ~ The Roles of Program Verification ~ Problems.
Further Reading
Column 5: A Small Matter of Programming 45
From Pseudocode to C ~ A Test Harness ~ The Art of Assertion ~ Auto-
mated Testing ~ Timing ~ The Complete Program. Principles ~ Problems
~ Further Reading ~ Debugging
Part II: PERFORMANCE 59
Column 6: Perspective on Performance 61
A Case Study. Design Levels. Principles. Problems ~ Further Reading
Column 7: The Back of the Envelope 67
Basic Skills ~ Performance Estimates ~ Safety Factors ~ Little’s Law ~
Principles ~ Problems ~ Further Reading ~ Quick Calculations in Everyday
Life
Column 8: Algorithm Design Techniques 77
The Problem and a Simple Algorithm ~ Two Quadratic Algorithms ~ A
Divide-and-Conquer Algorithm ~ A Scanning Algorithm ~ What Does It
Matter? ~ Principles. Problems. Further Reading
Column 9: Code Tuning 87
A Typical Story ~ A First Aid Sampler ~ Major Surgery Binary Search ~
Principles. Problems. Further Reading
Column 10: Squeezing Space 99
The Key Simplicity ~ An Illustrative Problem. Techniques for Data
Space. Techniques for Code Space ~ Principles ~ Problems ~ Further
Reading ~ A Big Squeeze
Part III: THE PRODUCT 113
Column 11: Sorting 115
Insertion Sort ~ A Simple Quicksort ~ Better Quicksorts ~ Principles ~
Problems ~ Further Reading
Column 12: A Sample Problem 125
The Problem ~ One Solution. The Design Space. Principles ~ Problems
~ Further Reading
Column 13: Searching 133
The Interface ~ Linear Structures ~ Binary Search Trees ~ Structures for
Integers. Principles. Problems. Further Reading. A Real Searching
Problem
Column 14: Heaps 147
The Data Structure ~ Two Critical Functions ~ Priority Queues ~ A Sorting
Algorithm. Principles. Problems. Further Reading
Column 15: Strings of Pearls 161
Words ~ Phrases ~ Generating Text ~ Principles ~ Problems ~ Further
Reading
Epilog to the First Edition 175
Epilog to the Second Edition 177
Appendix 1: A Catalog of Algorithms 179
Appendix 2: An Estimation Quiz 183
Appendix 3: Cost Models for Time and Space 185
Appendix 4: Rules for Code Tuning 191
Appendix 5: C++ Classes for Searching 197
Hints for Selected Problems 201
Solutions to Selected Problems 205
Index 233
· · · · · ·
Part I: PRELIMINARIES 1
Column 1: Cracking the Oyster 3
A Friendly Conversation ~ Precise Problem Statement ~ Program Design ~
Implementation Sketch. Principles ~ Problems. Further Reading
Column 2: Aha! Algorithms 11
Three Problems ~ Ubiquitous Binary Search ~ The Power of Primitives ~
Getting It Together: Sorting. Principles. Problems. Further Reading.
Implementing an Anagram Program
Column 3: Data Structures Programs 21
A Survey Program ~ Form-Letter Programming ~ An Array of Examples ~
Structuring Data. Powerful Tools for Specialized Data ~ Principles ~ Prob-
lems ~ Further Reading
Column 4: Writing Correct Programs 33
The Challenge of Binary Search ~ Writing the Program ~ Understanding the
Program. Principles ~ The Roles of Program Verification ~ Problems.
Further Reading
Column 5: A Small Matter of Programming 45
From Pseudocode to C ~ A Test Harness ~ The Art of Assertion ~ Auto-
mated Testing ~ Timing ~ The Complete Program. Principles ~ Problems
~ Further Reading ~ Debugging
Part II: PERFORMANCE 59
Column 6: Perspective on Performance 61
A Case Study. Design Levels. Principles. Problems ~ Further Reading
Column 7: The Back of the Envelope 67
Basic Skills ~ Performance Estimates ~ Safety Factors ~ Little’s Law ~
Principles ~ Problems ~ Further Reading ~ Quick Calculations in Everyday
Life
Column 8: Algorithm Design Techniques 77
The Problem and a Simple Algorithm ~ Two Quadratic Algorithms ~ A
Divide-and-Conquer Algorithm ~ A Scanning Algorithm ~ What Does It
Matter? ~ Principles. Problems. Further Reading
Column 9: Code Tuning 87
A Typical Story ~ A First Aid Sampler ~ Major Surgery Binary Search ~
Principles. Problems. Further Reading
Column 10: Squeezing Space 99
The Key Simplicity ~ An Illustrative Problem. Techniques for Data
Space. Techniques for Code Space ~ Principles ~ Problems ~ Further
Reading ~ A Big Squeeze
Part III: THE PRODUCT 113
Column 11: Sorting 115
Insertion Sort ~ A Simple Quicksort ~ Better Quicksorts ~ Principles ~
Problems ~ Further Reading
Column 12: A Sample Problem 125
The Problem ~ One Solution. The Design Space. Principles ~ Problems
~ Further Reading
Column 13: Searching 133
The Interface ~ Linear Structures ~ Binary Search Trees ~ Structures for
Integers. Principles. Problems. Further Reading. A Real Searching
Problem
Column 14: Heaps 147
The Data Structure ~ Two Critical Functions ~ Priority Queues ~ A Sorting
Algorithm. Principles. Problems. Further Reading
Column 15: Strings of Pearls 161
Words ~ Phrases ~ Generating Text ~ Principles ~ Problems ~ Further
Reading
Epilog to the First Edition 175
Epilog to the Second Edition 177
Appendix 1: A Catalog of Algorithms 179
Appendix 2: An Estimation Quiz 183
Appendix 3: Cost Models for Time and Space 185
Appendix 4: Rules for Code Tuning 191
Appendix 5: C++ Classes for Searching 197
Hints for Selected Problems 201
Solutions to Selected Problems 205
Index 233
· · · · · ·
“编程珠玑(英文版・第2版)”试读 · · · · · ·
· · · · · · (查看全部试读)
发表回复
要发表评论,您必须先登录。