《算法第四版》学习心得一——怎么学算法

 一、算法的两个核心

算法的核心内容实际上有两个:

  1. 算法的概念和思路。
  2. 算法的编程实现。

两者相互关联影响,缺一不可。

不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。

二、学算法需要什么基础

  1. 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成员变量,方法,封装等等。
  2. 有了语言基础,即使没有大量的编程经验,也已经具备了学习算法的概念和思路的能力,因为概念和思路更多是考验学习者的抽象思维能力。思维能力好的人,即使没有大量的编程经历,也可以很快掌握算法的核心概念。反之,思维能力差的人,即使有了多年的编程经验,在接触到一个新算法的时候,也需要花费很长时间才能理解算法的核心概念。
  3. 理解了某个算法的概念和思路,并不意味着掌握了这个算法。在遇到真实问题的时候,它能带给你思路,但不能给你真正解决问题的能力。要想真正具备解决问题的能力,就一定要把算法实现出来。只有自己能够独立实现算法,才是真正掌握了算法。
  4. 这一步就对写代码能力提出了要求。这就相当于在问,如果我能说清楚某个逻辑过程,那我是否有能力把这个过程转化成代码呢?这是一个难倒很多初学者的要求,同时也是每个初学者不得不跨过的坎。我自己到现在也还在被这个问题困扰,但我相信,随着我不断学习和实践,实现代码的能力总是会逐步增强的。

三、怎么学?

  1. 通过前面的分析可以知道,学算法一定要先搞清楚概念和思路。没有理解算法的概念和思路就直接想实现代码,实际上是南辕北辙。因此,每当接触一个新的算法和结构是,先不要忙着去写代码,去实现。先问问自己,这个算法是在做什么呢?它是在解决什么样的问题?它是用了什么样的方法解决问题的?
  2. 反反复复思考这些问题,直到自己基本能够把问题的答案理清楚。实在想不清楚,可以借助书上的代码和图形实例帮助理解。《算法》这本书非常好的一点就是,对于书中提供的算法,基本都提供了形象的图形演示,真实良心好书啊。
  3. 有了思路一定不能浅尝辄止。合上书,打开IDE工具,试着独立把代码写出来。
  4. 当然在写代码过程中,也会遇到很多问题,好在书上都提供了源代码。但是,遇到了问题尽量自己尝试解决,实在解决不了了,再去翻看源代码。因为比学到一个算法更重要的是,增强自己实现代码的能力。
  5. 自己把代码实现后就可以松口气了,算法基本已经进入我们的脑子了。如果想要达到更好的效果,这个时候可以试着去刷一些关于这个代码的题,比如leetcode上的算法题。
  6. 如此以后,在遇到新问题的时候,它就能带给我们新思路了。而且即使长时间不用以后,也可以很快得再捡回来。     

你可能感兴趣的:(算法与数据结构)