算法精解一(C语言版)

时间:2021-01-01 03:56:27

        最近无事  抽出点时间来整理一下算法  希望对自己有进一步的帮助和对学习算法的同行有一些帮助吧!算法精解一(C语言版)

        讲到算法  这个词是很重一个解决问题的途径 无论在什么行业 算法都是很重要的。

不管你是否承认,无论哪种软件开发项目,几乎所有的程序员,开发者在日常工作中都要同数据结构和算法打交道。当我们阅读源码,对大型软件项目进行层层抽丝剥离之后,呈现我们面前的不再是复杂的层次结构和模式,而是回归到了程序的本质——数据结构和算法上来。有关数据结构和算法题材的经典书籍有很多,如《计算机程序设计艺术》、《算法导论》等,但本书绝对不同于之前的相关书籍 。当我们在学习数据结构和算法时,往往花费了大量的时间纠结于各种公式和理论证明上,学究气息过于浓厚而少了几分实践感。但相关主题的书籍多是与伪码的形式来表达算法思路,缺乏同软件开发实践的集合。试问,当我们辛辛苦苦“学会”了一些算法和数据结构,但在实际标称中往往要么一写就错(伪码毕竟是只是用来表达算法思路,但具体编程时会遇到很多实现 上的细节问题),要么面对问题不只如何下手解决(因为没有实际的应用,不知道如何对问题建模),此时会不会觉得自己白学了?毕竟,我们学到的东西要懂得利用才能体现价值。将一个实际问题同我们学到的算法和数据结构相结合起来,这正是软件开发中的一个项重要技能——抽象建模能力。

这主要的体现在一下几点上:

      1.第一部从讲述相关的C语言基础知识和算法分析方法入手,在随后的章节中采用软件工程中的良好准则,结合作者的实践经验将基于接口的C程序设计理念贯穿全书。使用本书中的数据结构和算法实现能够以接口的形式充分得到复用。

      2.书中的代码实现主要以教学为目的,但也同样考虑到了实现效率的问题。对于实现方案的选择和取舍,都有详细的说明和解释。每章末尾的“问与答”将加深读者对相关章节的理解。

      3.除了对数据结构和算法本身的介绍,书中所有的应用举例都来自于真实的应用,这绝不是一般的练习题,而是算法和数据结构在真实世界中的应用。包括操作系统中的页帧管理、和页面置换算法、表达式处理等等。通过实际的例子向读者展示了数据结构和算法的威力,有助于培养我们抽象建模的能力,从而更有效的将学到了知识用于解决实际问题中。

总的来说,这是一本对“打基础”很有帮助的书。书中对常见的数据结构如链表、栈、队列、结合、何其表、树、堆、图都做了详细的分析并给出了具体的实现。算法方面除了最为常见的排序和检索外,还有数值计算、数据压缩、数据加密、几何计算等方面的主题。

当译者第一次看法哦本书的英文版时,立刻被本书都有的风格所吸引。在看看出版时间居然超过10年之久,令人奇怪的是,这样一本优秀的技术类图在这么长时间里居然从未引进到国内,无论是译作还是影印都难觅其踪,因此我们鼓足勇气开始了本书的翻译。感谢机械工业出版社引进了本书,这才得以让本书的中译本得以和大家见面。由于时间的仓促,和水平有限,在翻译过程中难免会出现一些错误,希望读者能批评指正。