具体描述
本书是数据结构和算法领域的经典之作,十余年来,畅销不衰!全书共分为三部分:第一部分首先介绍了数据结构和算法的概念,以及使用它们的原因和意义,然后讲解了数据结构和算法中最常用的技术——指针和递归,最后还介绍了算法的分析方法,旨在为读者学习这本书打下坚实的基础;第二部分对链表、栈、队列、集合、哈希表、堆、图等常用数据结构进行了深入阐述;第三部分对排序、搜索数值计算、数据压缩、数据加密、图算法、几何算法等经典算法进行了精辟的分析和讲解。
本书的众多特色使得它在同类书中独树一帜:具体实现都采用正式的C语言代码而不是伪代码,在很多数据结构和算法的实现过程中,有大量细节问题是伪代码不能解决的;每一章都有精心组织的主题和应用;全部示例来自真实的应用,不只是一般的练习;对每种数据结构、算法和示例都进行了详细分析;每一章的末尾都会有一系列问题和对应的回答,旨在强调这一章的重要思想……
本书中的代码尤为值得强调:所有实现都采用C语言编写,所有代码都优先用于教学目的,所有代码都在4种平台上经过完整测试,头文件记录了所有公共的接口,命名规则适用于全书所有的代码,所有的代码都包含大量注释……
本书内容包括:
· 数据结构和算法的概念,以及使用它们的原因和意义
· 指针和递归
· 算法分析
· 常用数据结构:链表、栈、队列、集合、哈希表、树、堆、优先级队列以及图
· 排序和搜索
· 数值计算
· 数据压缩
· 数据加密
· 图算法
· 几何算法
作者简介
Kyle Loudon是美国加州洛斯加托斯Jeppesen Dataplan公司的一名软件工程师,主管图形接口开发小组,主攻航迹规划软件的研发,这些软件主要用于商业航空公司、私营航空部门和其他一些航空制造业。在来到Jeppesen之前,Kyle在IBM公司是一名系统程序员。在技术上,Kyle主要对操作系统、网络、人机交互等领域感兴趣。1992年,Kyle在普渡大学拿到了计算机科学学士学位,并取得了法语的第二学位,同时他还被选入斐陶斐荣誉学会(美国大学优等生之荣誉学会)。他在普渡大学计算机系教了三年的计算机课程。在这期间,他完成了他个人的第一本书《Understanding Computers》,这本书用理论结合实践的方式介绍计算机的方方面面。如今,尽管他继续工作在硅谷的软件业,但他仍然坚韧不拔地在追求一个更高的学位。
除了计算机,Kyle多年来喜欢打网球、教网球。他还喜欢山地骑行、滑冰,偶尔也和朋友们一起参加高尔夫课程。另外,Kyle还喜欢各种形式的戏剧、美食,以及某些风格的音乐和艺术;他期望成为钢琴家和艺术家,但希望渺茫。他现在在Jeppesen的工作是从他1992年开始驾驶飞机之后找到的。现在,他是一个拥有美国联邦航空局颁发的商业飞行员执照的飞行员。
目录信息
2. 第1部分 预备知识
3. 第1章 概述
4. 数据结构简介
5. 算法简介
6. 小酌软件工程
7. 如何使用本书
8. 第2章 指针操作
9. 指针基础
10. 存储空间分配
11. 数据集合与指针的算术运算
12. 作为函数参数的指针
13. 泛型指针与类型转换
14. 函数指针
15. 问与答
16. 相关主题
17. 第3章 递归
18. 基本递归
19. 尾递归
20. 问与答
21. 相关主题
22. 第4章 算法分析
23. 最坏情况分析
24. O表示法
25. 计算的复杂度
26. 实例分析:插入排序
27. 问与答
28. 相关主题
29. 第2部分 数据结构
30. 第5章 链表
31. 单链表介绍
32. 单链表接口的定义
33. 单链表的实现与分析
34. 使用链表的例子:页帧管理
35. 双向链表介绍
36. 双向链表接口的定义
37. 双向链表的实现与分析
38. 循环链表介绍
39. 循环链表接口的定义
40. 循环链表的实现与分析
41. 使用循环链表的例子:第二次机会页面置换法
42. 问与答
43. 相关主题
44. 第6章 栈和队列
45. 栈的描述
46. 栈的接口定义
47. 栈的实现与分析
48. 队列的描述
49. 队列的接口定义
50. 队列的实现与分析
51. 队列示例:事件处理
52. 问与答
53. 相关主题
54. 第7章 集合
55. 集合介绍
56. 集合的性质
57. 集合接口的定义
58. 集合抽象数据类型的实现和分析
59. Set示例:集合覆盖
60. 问与答
61. 相关主题
62. 第8章 哈希表
63. 链式哈希表的描述
64. 链式哈希表的接口定义
65. 链式哈希表的实现与分析
66. 链式哈希表的例子:符号表
67. 开地址哈希表的描述
68. 开地址哈希函数的接口定义
69. 开地址哈希表的实现与分析
70. 问与答
71. 相关主题
72. 第9章 树
73. 二叉树介绍
74. 二叉树的接口定义
75. 二叉树的实现与分析
76. 二叉树示例:表达式处理
77. 二叉搜索树介绍
78. 二叉搜索树的接口定义
79. 二叉搜索树的实现与分析
80. 问与答
81. 相关主题
82. 第10章 堆和优先队列
83. 堆的描述
84. 堆的接口定义
85. 堆的实现与分析
86. 优先队列的描述
87. 优先队列的接口定义
88. 优先队列的实现与分析
89. 优先队列的示例:包裹分拣
90. 问与答
91. 相关主题
92. 第11章 图
93. 图的描述
94. 图的接口定义
95. 图的实现与分析
96. 关于图的应用举例:计算网络跳数
97. 关于图的应用举例:拓扑排序
98. 问与答
99. 相关主题
100. 第3部分 算法
101. 第12章 排序和搜索
102. 插入排序的描述
103. 插入排序的接口定义
104. 插入排序的实现与分析
105. 快速排序的描述
106. 快速排序的接口定义
107. 快速排序的实现与分析
108. 快速排序的例子:目录列表
109. 归并排序的描述
110. 归并排序的接口定义
111. 归并排序的实现与分析
112. 计数排序的描述
113. 计数排序的接口定义
114. 计数排序的实现与分析
115. 基数排序的描述
116. 基数排序的接口定义
117. 基数排序的实现与分析
118. 二分查找的描述
119. 二分查找的接口定义
120. 二分查找的实现与分析
121. 二分查找的例子:拼写检查器
122. 问与答
123. 相关主题
124. 第13章 数值计算
125. 多项式插值法
126. 多项式插值的接口定义
127. 多项式插值的实现与分析
128. 最小二乘估计法
129. 最小二乘估计的接口定义
130. 最小二乘估计的实现和分析
131. 方程求解介绍
132. 方程求解的接口定义
133. 方程求解的实现与分析
134. 问与答
135. 相关主题
136. 第14章 数据压缩
137. 位操作的描述
138. 位操作的接口定义
139. 位操作的实现与分析
140. 霍夫曼编码的描述
141. 霍夫曼编码的接口定义
142. 霍夫曼编码的分析与实现
143. 霍夫曼编码的例子:网络优化
144. LZ77的描述
145. LZ77的接口定义
146. LZ77的实现与分析
147. 问与答
148. 相关主题
149. 第15章 数据加密
150. DES算法介绍
151. DES的接口定义
152. DES算法的实现和分析
153. DES应用举例:分组加密模式
154. RSA算法介绍
155. RSA的接口定义
156. RSA算法的实现与分析
157. 问与答
158. 相关主题
159. 第16章 图算法
160. 最小生成树的描述
161. 最小生成树的接口定义
162. 最小生成树的实现与分析
163. 最短路径的描述
164. 最短路径的接口定义
165. 最短路径的实现与分析
166. 最短路径的例子:路由表
167. 旅行商问题的描述
168. 旅行商问题的接口定义
169. 旅行商问题的实现与分析
170. 问与答
171. 相关主题
172. 第17章 几何算法
173. 测试线段是否相交
174. 测试线段是否相交的标准方法
175. 检测线段是否相交的接口定义
176. 检测线段是否相交的实现与分析
177. 凸包简介
178. Jarvis’s March
179. 凸包的接口定义
180. 凸包的实现与分析
181. 球面弧长
182. 求解球面弧长的接口定义
183. 求解球面弧长的实现和分析
184. 球面弧长的应用举例:地球上两点之间的近似距离
185. 问与答
186. 相关主题
· · · · · · (收起)
读后感
看了介绍,很想读一下,不知道哪里能买到。刚看了几个网上书店,貌似都没有。改天去书店看看,这个价钱应该还是能接受了。上学的朋友们估计很快也能在图书馆借到了,也省的花钱了。 我比较关注这段介绍:具体实现都采用正式的C语言代码而不是伪代码,在很多数据结构和算法的实...
本书的最大特点是有源代码,所以非常非常适合大一大二的同学用来完成数据结构的大作业,自己写个测试用例就好了……另外,配图非常好,看起来非常舒服。书中的例子只能说是完成了基本功能,有些例子还有可以优化的地方。 只看过中文版,有些句子完全和上下文无关,不清楚是原...
看了介绍,很想读一下,不知道哪里能买到。刚看了几个网上书店,貌似都没有。改天去书店看看,这个价钱应该还是能接受了。上学的朋友们估计很快也能在图书馆借到了,也省的花钱了。 我比较关注这段介绍:具体实现都采用正式的C语言代码而不是伪代码,在很多数据结构和算法的实...
本书的最大特点是有源代码,所以非常非常适合大一大二的同学用来完成数据结构的大作业,自己写个测试用例就好了……另外,配图非常好,看起来非常舒服。书中的例子只能说是完成了基本功能,有些例子还有可以优化的地方。 只看过中文版,有些句子完全和上下文无关,不清楚是原...
这是一本经典的关于C语言的数据结构和算法的书籍,年代比较久远了,但里面的内容完全没有过时。对于学生和刚工作不久的工程师来说,绝对是一本比较好的打好基础的书。书中有的完整的源代码和示例,较易理解其算法过程。出版商是国外知名的O'Reilly,这个就不用多介绍了,呵呵。...
用户评价
这本书的语言风格极其晦涩难懂,充满了学术界特有的那种“故作高深”的腔调。作者似乎非常热衷于使用复杂的长句和生僻的专业术语,仿佛生怕别人轻易就能读懂他的思想一样。很多地方,一个简单的概念,作者能用上三四行复杂的从句来表达,读起来非常费劲,需要反复朗读才能勉强理解其字面意思。更令人沮丧的是,书中几乎没有提供任何辅助性的学习资源,比如在线勘误表、配套的练习代码库,或者任何作者的答疑渠道。这使得一旦你在阅读过程中遇到任何疑问或发现印刷错误,就如同陷入了死胡同,完全没有出口。我尝试在网上搜索相关的讨论和解读,但由于这本书的定位过于小众和理论化,找到的有效参考资料少之又少,很多时候只能依靠自己硬碰硬地去“磨”。这种“孤军奋战”的感觉,让学习的过程充满了挫败感。如果一本技术书不能以清晰、易懂的方式传达知识,那么它在教育意义上就大打折扣了,这本书恰恰就犯了这样的错误,它更像是作者为自己留下的研究笔记,而不是为大众编写的教学指南。
这本书的内容组织结构,简直就是一场灾难性的迷宫探索。它没有采用循序渐进的方式来引导读者,而是像一个知识点的瀑布,一股脑地倾泻下来,让人应接不暇。章节之间的逻辑关联性非常薄弱,读完第三章,你很难自然地过渡到第四章,因为它们仿佛是两个独立的世界,各自为营,互不搭理。我花了极大的力气在构建知识体系的内在联系上,而不是单纯地吸收知识点本身。例如,当讲到高级排序算法时,作者突然插入了一大段关于信息熵的讨论,这种突然的转向让我完全失去了阅读的连贯性,感觉作者的思维跳跃性太强,没有站在读者的角度去精心设计阅读路径。此外,书中对某些基础概念的定义描述得含糊不清,导致我对后续更复杂概念的理解产生了偏差。我需要不停地在不同章节之间来回翻阅,试图找到缺失的那块“关键拼图”,但往往徒劳无功。整本书读下来,我感觉自己像是在一个巨大的知识仓库里乱闯,东边捡一块砖,西边拿一块瓦,但最后拼凑出来的成品结构歪七扭八,完全无法达到预期的目标。
天哪,最近刚啃完这本号称是算法领域的“圣经”的书,说实话,感觉我的脑子都快要被那些复杂的公式和图论搞爆炸了。这本书的讲解风格极其硬核,简直就是一本高阶数学课本的翻版,对于我这种只想了解点基础概念的初学者来说,简直是灾难。每一次翻开书页,都感觉自己不是在阅读技术书籍,而是在攻克一道道高深的数学难题。作者的叙述方式非常跳跃,很多关键的推导过程被一带而过,留给读者的空间巨大,但这种“留白”对我来说更像是“空白”,我得自己去查阅大量的背景知识才能勉强跟上思路。举个例子,讲到动态规划时,那些递推关系的建立过程,写得就像是武侠小说里的秘籍,只有寥寥数语,但背后蕴含的逻辑深度却让人望而却步。我花了大量时间在理解那些抽象的符号和证明上,而不是真正理解算法的精髓和应用场景。如果不是对算法有极其深厚的数学功底,这本书的阅读体验无疑是痛苦的,它更像是一本面向研究人员的参考手册,而非面向工程师的实用指南。我严重怀疑,即便是科班出身的资深工程师,也得备着咖啡和纸笔才能勉强消化其中的内容。这本书的门槛实在太高了,让普通读者望而生畏,完全无法提供那种“茅塞顿开”的阅读快感。
坦白说,这本书的“干货”密度实在太低了,给人的感觉就是用极少的有效信息,撑起了一本厚厚的书。很多页数被用来充斥着冗长且毫无新意的数学推导,这些推导过程不仅难以理解,而且对于实际应用来说,其边际效用几乎为零。我花了大量时间去扣那些理论上的边界条件和特例证明,结果发现,在实际的工程项目中,我们需要的无非是那几个核心的复杂度分析和选择最优算法的通用准则,而这些内容在这本书中往往被埋藏在几十页的“背景知识”之下,难以挖掘。比如,关于图搜索算法的讨论,书中花费了大量的篇幅去探讨某种特殊图结构下的最优路径计算,但对于最常见的BFS和DFS的应用场景和时间复杂度分析,却一带而过,显得主次不分。这种内容的分配极度不平衡,让人感觉作者更热衷于展示自己研究的深度和广度,而非致力于提升读者的实践能力。读完之后,我最大的感受不是“我学到了”,而是“我浪费了时间在这些边角料上”,真正核心、立即可用的知识点少得可怜,性价比极低,非常不推荐给那些时间宝贵、追求效率的学习者。
这本书的排版和装帧,说实话,简直让人不敢恭维。拿到手的时候就感觉一股浓浓的“学术风”,纸张质量一般,印刷的墨迹有时深有时浅,很多公式和代码块的对齐都显得有些粗糙,这对于一本注重精确性的技术书籍来说,简直是致命伤。更要命的是,书中大量使用了一种我从未见过的符号系统来表示数据结构,导致我光是理解作者的表达习惯就花费了大量时间。很多时候,我不得不停下来,对照着附录里的符号表一遍遍核对,生怕自己理解错了其中的含义。而且,书中的例子大多是理论化、脱离实际的,比如在讲解树结构时,那个例子简直抽象到了令人发指的地步,完全无法让我联想到任何实际应用场景,比如文件系统或者数据库索引。读完一个章节,我感觉自己好像完成了一次智力体操,但对实际写代码解决问题毫无帮助。这本书的实用性几乎为零,它更像是一个理论成果的展示,而不是一本教人如何构建高效系统的工具书。我期望看到的是清晰的代码实现和实际的性能分析,但这本书里这些内容少得可怜,显得非常单薄,让人感觉用力过猛在理论上,却在实践上掉链子了。
只能说平平,没有图灵的几本书讲得好。数据结构占了很大的篇幅,涉及真正算法的地方却很少,算是入门版。
写的太棒了,算法写的通俗易懂,早点看到这本书就好了
写的太棒了,算法写的通俗易懂,早点看到这本书就好了
其实吧我就冲标题想看看 C 怎么写的…(然后好像也并没有什么惊喜(内容实在是…太简单了吧…(然而质量还是不错的…翻翻有种在复习的感觉 23333(后面竟然还有压缩和加密算法 真是百科全书 23333
其实吧我就冲标题想看看 C 怎么写的…(然后好像也并没有什么惊喜(内容实在是…太简单了吧…(然而质量还是不错的…翻翻有种在复习的感觉 23333(后面竟然还有压缩和加密算法 真是百科全书 23333