算法精解-C语言描述
经常查看这本书,受益匪浅。
微信读书已经下架。但是我有它的随书代码的下载方式:
git clone https://resources.oreilly.com/examples/9781565924536.git
此书结构
此书分为3部分。第1部分由介绍性的内容组成,它们对于读者理解接下来的章节有很大帮助。第2部分介绍了计算机科学中最基本的几种数据结构。第3部分介绍用于解决常见问题的各种算法。
第1部分
第1部分包括第1~4章。
第1章介绍数据结构和算法的概念,并给出使用数据结构和算法的原因。这一章也介绍一些与软件工程相关的思想和主题,这些思想会贯穿全书。
第2章讨论一系列与指针相关的主题。指针在本书中大量出现,因此这一章可作为对指针的回顾和复习。
第3章介绍递归,这是一种在许多数据结构和算法中都会用到的技术。
第4章介绍算法的分析方法。这一章中的内容用来分析本书中介绍的算法。
第2部分
第2部分包括第5~11章。
第5章介绍多种形式的链表,包括单链表、双向链表以及循环链表。
第6章介绍栈和队列,它们分别按照后进先出以及先进先出的方式来存储和返回数据。
第7章介绍集合以及用来描述集合这种数据结构的数学知识。
第8章介绍链式和开地址哈希表,还包含如何选择一个好的哈希函数以及如何解决哈希碰撞的内容。
第9章介绍二叉树和AVL树,也包含多种树的周游算法。
第10章介绍堆和优先级队列,这种数据结构有助于快速确定集合中的最大或最小元素。
第11章介绍图,以及在许多图算法中常用到的两种重要算法:广度优先查找和深度优先查找。
第3部分
第3部分包含第12~17章。
第12章涵盖多种排序算法,包括插入排序、快速排序、归并排序、计数排序以及基数排序,这一章也介绍二分查找。
第13章涵盖数值计算方法,包括多项式插值算法、最小二乘估计以及用来解方程的牛顿迭代法。
第14章介绍关于数据压缩的算法,包括霍夫曼编码以及LZ77。第15章讨论用于数据加密的DES和RSA算法。
第16章涵盖图算法,包括用于确定最小生成树的Prim算法、确定最短路径的Dijkstra算法,以及解决旅行商问题的算法。
第17章介绍几何算法,包括检测两条线段是否相交、凸包计算以及计算球面上两点间的弧长。