算法与数据结构:掌握核心竞争力的关键

发表时间: 2022-10-18 16:33

要知道,数据结构和算法这种永远都不会过时的核心技能,对程序员的重要性往往不言而喻,毕竟同一个问题不用算法效率可谓千差万别。

以编程为例:

编程好比是一辆汽车,而数据结构和算法是汽车内部的变速箱。一个开车的人不懂变速箱的原理也是能开车的,同理一个不懂数据结构和算法的人也能编程。但是如果一个开车的人懂变速箱的原理,比如降低速度来获得更大的牵引力,或者通过降低牵引力来获得更快的行驶速度。那么爬坡时使用1档,便可以获得更大的牵引力;下坡时便使用低档限制车的行驶速度。
回到编程而言,比如将一个班级的学生名字要临时存储在内存中,你会选择什么数据结构来存储,数组还是ArrayList,或者HashSet,或者别的数据结构。如果不懂数据结构的,可能随便选择一个容器来存储,也能完成所有的功能,但是后期如果随着学生数据量的增多,随便选择的数据结构肯定会存在性能问题,而一个懂数据结构和算法的人,在实际编程中会选择适当的数据结构来解决相应的问题,会极大的提高程序的性能 。

什么是算法?

算法就是解决问题。

  • 问题是什么——Problem
  • 我们有什么——Input
  • 我们想要得到什么——Output
  • 尝试最简单的方法——Simple Solution
  • 看看如何改进——Develop Incrementally

什么是数据结构?

下面我们用程序来表示一下:

 class 番茄炒蛋:     鸡蛋 = [ ]     西红柿 = [ ]     食用油 = [ ]     味精 = [ ]     生抽 = [ ]葱花 = [ ]   清水 = [ ]盐 = [ ]糖 = [ ]

上述这个结构体就是一个自定义的数据结构,将很多种不同的东西融合在一起。而计算机中的数据结构,则是把一些基本的数据类型,如string,int,float等融合成一些复杂的数据结构,如list,tuple,dict等。