本文思维导图
什么是算法
上回我们有一篇文章,讲述了作为一个新人程序员,如何学习数据结构这门课程,其实呢,数据结构和算法是息息相关的,为什么这么说呢,因为数据结构本身只是一个载体,而在数据结构之上产生作用和输出价值的东西其实是算法。
比如数据结构里的数组,看似非常简单的数据结构,却可以支持很多复杂的算法,比如动态规划,比如 DFS 和 BFS,再比如字符串算法、二叉树算法等等。那么算法到底是什么东西呢,不妨让我们来看看官方的介绍。
根据百度百科的介绍,算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
其实,算法的本质就是给你一组输入,运算之后给你一组输出,因此,算法帮人们解决很多问题把抽象的问题具体化,把一个问题转化成另外一个问题。
认识算法的 N 个阶段
我第一次遇到算法题,还是在我考研复习数据结构的时候,那个时候我看到的算法题其实都是很基础的题目,比如把数组中的两个元素置换,把两个链表合并成一个,但对于我来说已经是很有难度的事情了,那时候我连伪代码是什么都还不懂。
第二次认识算法,还是在研究生期间找实习工作的时候,面试的时候总有一些关于算法知识的考察,这些算法题比之前自己学数据结构的时候要更难一些,比如要让你描述一下快排的过程,或者是二分查找的过程,由于是电话面试居多,一般都不会考察太复杂的问题。
第三次认识算法,是在面试了头条这类对算法要求极高的公司之后。当时我对这类公司的算法面试...
== 试读已结束,如需继续阅读敬请充值会员 ==
|
本站文章均为原创投稿,仅供下载参考,付费用户可查看完整且有格式内容!
(费用标准:38元/月,98元/年,微信支付秒开通!) |
升级为会员即可查阅全文 。如需要查阅全文,请 免费注册 或 登录会员 |