微信号:TheAlgorithm

介绍:算法与数据结构知识、资源分享

为什么程序员一定要学数据结构?数据结构书单推荐~

2018-07-28 16:37 猿哥

来自:程序员书库(ID:OpenSourceTop)


人们最初使用计算机是用来处理简单的数值计算问题,当你使用计算机来处理一个问题时,一般经过以下几个步骤:首先从具体问题抽象出一个适当的数学模型,然后设计或选择解决此数学模型的算法,最后才是编写程序并进行调试、测试,直到最后得出正确的解决方案


据统计,当今处理非数值计算性问题占用了90%以上的机器时间,涉及到的数据结构更为复杂,如果想有效解决问题,必须设计出最佳的数据结构。


很多人认为:学习数据结构,就是单纯学那些队列、堆栈、二叉树....其实不然,学习数据结构更重要的是你要去学习一种能力:把现实问题转化为计算机能识别的语言表示。


著名的瑞士计算机科学家沃思(N.Wirth)教授曾提出:


算法 + 数据结构=程序


从这个公式,我们会发现一个好的程序,必然需要强大算法基础和数据结构作为支撑,很多程序员写出来的代码惨不忍睹,究其原因就是基础太薄弱,因此学好数据结构是程序员非常重要的一件事


本文,我们将列举数据结构相关的好书,涉及的编程语言比较多,希望你可以从中找到一本适合自己的



1、《数据结构》



清华大学计算机系列教材,按照面向对象程序设计的思想,根据作者多年的教学积累,系统地介绍各类数据结构的功能、表示和实现,对比各类数据结构适用的应用环境;结合实际问题展示算法设计的一般性模式与方法、算法实现的主流技巧,以及算法效率的评判依据和分析方法;以高度概括的体例为线索贯穿全书,并通过对比和类比揭示数据结构与算法的内在联系,帮助读者形成整体性认识。



2、《学习JavaScript数据结构与算法》



本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。



3、《数据结构与算法分析:C语言描述》



本书曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,系统介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树。并着重讨论了算法设计技巧,包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法。



4、《R Data Structures and Algorithms



在本书中,不仅介绍了经典的数据结构,还介绍了函数式数据结构。本书一开始就和读者探讨,我们为什么要学习数据结构,然后再讨论数据结构和算法之间的关系,然后对算法进行讲解分析,介绍数据结构的基本原理,如列表、队列等,并通过实际例子,探讨了索引、排序和深度搜索等



5、《数据结构与算法经典问题解析



本书是一本数据结构方面的优秀教材,以Java为描述语言,介绍了计算机编程中使用的数据结构和算法,强调问题及其分析,每章首先阐述必要的理论基础,然后给出问题集。全书中大约有700个算法问题及相应的解法,对于许多问题,本书提供了多个具有不同复杂度的解决方法。



6、《Open Data Structures



本书涵盖了序列(列表),队列,优先级队列,无序字典,有序字典和图形数据结构的实现和分析。Morin致力于寻找一种快速,实用和高效的数学严谨方法,明确而快速地提供指令和源代码。



7、《Data Structures and Algorithms in Python》



本文旨在全面介绍数据结构和算法,包括它们的设计、分析和实现,与Java中的数据结构和算法以及c++中的数据结构和算法保持相同的结构。首先讨论Python的基础语法,书中许多有用的Python代码示例,并在网站上提供源代码。通过清晰的插图、直观的方式呈现数据结构和算法,以及分析过程。提供数百个练习题,帮助读者学习如何像程序员一样思考,并加强重要的概念。



8、《Data Structures and Algorithms Made Easy》



本书是一本为复杂数据结构和算法提供解决方案的书。每个问题都提出多种解决方案,本书采用C / C ++编写,可作为面试和考试指南,也可以被计算机科学行业的读者用作参考手册。



9、《Think Data Structures



如果你是一名计算机科学专业的学生或者是正准备面试的软件开发人员,这本书将能帮助你回顾软件工程中一些重要的知识点——数据结构和算法,而且是用一个更清晰、简洁的方式。

作者Allen Downey更多的是强调使用的知识技能,而不是停留在理论层面,本书向读者展示了如何使用数据结构来实现有效的算法,然后分析和度量它们的性能。



10、《程序员代码面试指南:IT名企算法与数据结构题目最优解》



这是一本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一痛点,本书选取将近200道真实出现过的经典代码面试题,帮助广大程序员的面试准备做到万无一失。



写在最后


数据结构与算法是入门程序员的一门必修基础课,因此除了学好数据库以外,你还需拥有良好的算法基础,如果你正需要一本算法好书,可点击阅读:


《世界读书日,你的书架上还缺一本算法好书…》

《一本书告诉你算法也可以这么学!》



●编号706,输入编号直达本文

●输入m获取到文章目录

 
算法与数据结构 更多文章 数学是普通程序员入门人工智能的最大障碍 5分钟理解一致性哈希算法 初学者应该了解的数据结构:Array、HashMap 与 List 那么多人选择“人工智能”,真的有那么好吗? 排序算法总结(1):冒泡排序
猜您喜欢 勒索病毒爆发的前后,第 5 期技术微周刊出炉了 第十九讲 复合文字结构 饿了么与钉钉合作,为企业白领推出品质商务餐 7条建议从码农成长为CTO 微信开源libco:简单易用高性能的协程库