【算法】1. 为什么要学习数据结构和算法

学习来源

本系列内容学习自:极客时间-数据结构与算法之美-王争-前Google工程师

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

为什么你要学习数据结构和算法

国内的编程圈真的很浮躁,80%的人都在专注于业务和增删改查。诚然,在真正的开发中你只需要学会几个甚至一个框架,一种数据库操作,就可以完成大部分的业务。但是在实际的开发过程中,你是否会碰到这种情况:

  1. 同样的功能,你的代码执行会把服务器卡死,别人的代码却可以如丝般润滑。
  2. 同样的功能,你的代码执行的时候会把服务器内存爆掉,别人的代码却可以顺利执行。

当你碰到这种情况,对自己的代码产生了怀疑,那么是时候去深入了解数据结构和算法了。

为什么我要学习数据结构和算法

作为一个浮躁的环境中撸了好几年业务的编程爱好者,我会经常对自己的代码review,也会经常去查看别人的代码和设计思路,在review的过程中经常会发现很多东西其实有更高效的执行方式。慢慢的,反思多了后自然也对自己的代码运行的时间效率和空间效率有了要求,偶尔也会有人问我他的代码该如何优化等等情况。

一个经典的通过算法来优化代码效率的例子 -- 无限极分类:两种无限极分类的办法

我记得当时(2017年)我在做无限极分类的时候还在愚蠢的使用递归获取子分类的方法。这种方式可以实现效果,但是时间复杂度非常高,之后经过同事的提示百度到了新的引用实现的方法,这个时候我才明白了什么叫屎山。

掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。

对编程还有追求?不想被行业淘汰?那就不要只会写凑合能用的代码!何为编程能力强?是代码的可读性好、健壮?还是扩展性好?我觉得没法列,也列不全。但是,在我看来,性能好坏起码是其中一个非常重要的评判标准。但是,如果你连代码的时间复杂度、空间复杂度都不知道怎么分析,怎么写出高性能的代码呢?

所以,想要写出效率更高的代码,避免屎山,就要学习数据结构和算法!文章的作者如是说道:

其实,我觉得,数据结构和算法这个东西,如果你不去学,可能真的这辈子都用不到,也感受不到它的好。但是一旦掌握,你就会常常被它的强大威力所折服。之前你可能需要费很大劲儿来优化的代码,需要花很多心思来设计的架构,用了数据结构和算法之后,很容易就可以解决了。

同样的,设计模式也是同理。如果不学,可能一辈子都用不到,也感受不到他的好。但是一旦有过学习,就会常常被他折服,并且可以在不经意间应用到自己的开发中。

小结

这一篇就说这么多吧,主要是说一下为什么你需要学习数据结构和算法来优化自己的代码。

程序幼儿员-龚学鹏
请先登录后发表评论
  • latest comments
  • 总共0条评论