logo
分类于: 设计 职场办公

简介

编程珠玑(英文版・第2版)

编程珠玑(英文版・第2版) 9.4分

资源最后更新于 2020-07-24 15:48:40

作者:[美] Jon Bentley

出版社:人民邮电出版社

出版日期:2010-01

ISBN:9787115232601

文件格式: pdf

标签: 算法 编程 计算机 programming 程序设计 Algorithm 数据结构 理论基础

简介· · · · · ·

多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”。这些文章是《ACM通讯》最受欢迎的专栏文章,最终结集为两部书出版。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。

在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众多大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者开展创新性的思考。书中透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。...

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

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