数据结构与算法学习背景概述

为什么要学习数据结构与算法?

1. 面试必备
站在一个比较现实且功利的角度来看,做计算机技术的大公司,如BAT、Google、Facebook,它们在招聘技术人员时,数据结构与算法是必考查的知识点。如果想要进入这样的大公司,那么掌握数据结构与算法就是必不可少的。
这点作为正在秋招时期的我深有感触。完全不问数据结构与算法的技术面试是非常少的,基本上每个公司在技术面都会考查数据结构与算法(就算是小公司)。
2. 技术路线成长必备
如果自己想在技术路线上有所成长,那么数据结构与算法就是必备的。因为数据结构与算法会帮助自己的开发过程中考虑的更成熟。虽然作为学生的我目前还没有体会到数据结构与算法在实际项目中的功效。不过,就我目前的知识来看,如果想要自己的代码要很好的存储与计算性能,那么是不是就一定要考虑数据的存储方式与数据的操作方式?这就是数据结构与算法了,想要自己考虑的更周全更深入,那么一定要考虑到数据的存储与操作。学习数据结构与算法其实就是学习前人大牛们总结出来的经验。如果掌握了这些,我们就是站在巨人的肩膀上看问题了,当然会事半功倍了。

学习数据结构与算法的原动力

我认为学习数据结构与算法的原动力应该是为了自己的技术成长,而面试通关利器只能作为结果而非动力。

数据结构与算法是什么

广义上:数据结构是存储数据的方法,算法是操作数据的方法。举个例子,在图书馆中,数据就是一本本书。图书馆的数据结构就是书存放在图书馆的方式,比如它可以随机放,也可以分门别类的存放。图书馆的查找算法就是我们查找一本书的方式,我们可以一个接着一个的去试探性的查找,也可以按类定位查找。
狭义上:数据结构指的是队、栈、堆、数组等,算法指的是动态规划、二分查找等。这些数据结构与算法都是计算机领域的前辈们总结出来的经验,我们掌握了这些,在自己实际工作中就可以借鉴使用。或者掌握这些数据结构与算法的思想也能够帮助自身更好的思考问题。

数据结构与算法的重点是什么

核心重点:复杂度分析
数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树
算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

数据结构与算法全貌

在这里插入图片描述
(图来自王争《数据结构与算法之美》课程)

没有更多推荐了,返回首页