01为什么要学习数据结构和算法?.pdfVIP

01为什么要学习数据结构和算法?.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01|为什么要学习数据结构和算法? 01|为什么要学习数据结构和算法? 你是不是觉得数据结构和算法,跟操作系统、计算机网络一样,是脱离实际工作的知识?可能除了面试,这辈子也用不着? 尽管计算机相关专业的同学在大学都学过这门课程,甚至很多培训机构也会培训这方面的知识,但是据我了解,很多程序员对数据结构和算法依旧一窍不 通。还有一些人也只听说过数组、链表、快排这些最最基本的数据结构和算法,稍微复杂一点的就完全没概念。 当然,也有很多人说,自己实际工作中根本用不到数据结构和算法。所以,就算不懂这块知识,只要Java API、开发框架用得熟练,照样可以把代码写 “ ” 得 飞 起来。事实真的是这样吗? 今天我们就来详细聊一聊,为什么要学习数据结构和算法。 想要通关大厂面试,千万别让数据结构和算法拖了后腿 BAT Google Facebook “ ” 很多大公司,比如 、 、 ,面试的时候都喜欢考算法、让人现场写代码。有些人虽然技术不错,但每次去面试都会跪 在算法上,很是可 惜。那你有没有想过,为什么这些大公司都喜欢考算法呢? 校招的时候,参加面试的学生通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。社招就更不用说了,越是厉害的公司,越是注重考察数据结 构与算法这类基础知识。相比短期能力,他们更看中你的长期潜力。 你可能要说了,我不懂数据结构与算法,照样找到了好工作啊。那我是不是就不用学数据结构和算法呢?当然不是,你别忘了,我们学任何知识都是为 了“用”的,是为了解决实际工作问题的,学习数据结构和算法自然也不例外。 业务开发工程师,你真的愿意做一辈子CRUD boy吗? 如果你是一名业务开发工程师,你可能要说,我整天就是做数据库CRUD (增删改查),哪里用得到数据结构和算法啊? 是的,对于大部分业务开发来说,我们平时可能更多的是利用已经封装好的现成的接口、类库来堆砌、翻译业务逻辑,很少需要自己实现数据结构和算法。 但是,不需要自己实现,并不代表什么都不需要了解。 如果不知道这些类库背后的原理,不懂得时间、空间复杂度分析,你如何能用好、用对它们?存储某个业务数据的时候,你如何知道应该用ArrayList ,还 是Linked List呢?调用了某个函数之后,你又该如何评估代码的性能和资源的消耗呢? 作为业务开发,我们会用到各种框架、中间件和底层系统,比如Spring、RPC框架、消息中间件、Redis等等。在这些基础框架中,一般都揉和了很多基础数据 结构和算法的设计思想。 比如,我们常用的Key-Value数据库Redis中,里面的有序集合是用什么数据结构来实现的呢?为什么要用跳表来实现呢?为什么不用二叉树呢? 如果你能弄明白这些底层原理,你就能更好地使用它们。即便出现问题,也很容易就能定位。因此,掌握数据结构和算法,不管对于阅读框架源码,还是理 解其背后的设计思想,都是非常有用的。 99% file:///F/temp/geektime/数据结构与算法之美/01为什么要学习数据结构和算法?.html[2019/1/15 15:35:03] 01|为什么要学习数据结构和算法? 在平时的工作中,数据结构和算法的应用到处可见。我来举一个你非常熟悉的例子:如何实时地统计业务接口的 响应时间? 1200 1188 99% 你可能最先想到,每次查询时,从小到大排序所有的响应时间,如果总共有 个数据,那第 个数据就是 的响应时间。很显然,每次用这个方法查询 “ ” 的话都要排序,效率是非常低的。但是,如果你知道 堆 这个数据结构,用两个堆可以非常高效地解决这个问题。 基础架构研发工程师,写出达到开源水平的框架才是你的目标!

您可能关注的文档

文档评论(0)

135****9139 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档