小白算法学习心得(c++)

很长时间没有写博客了,原因主要就是忙着上课或者是学习之类的。绝对不是贪玩 ,最近简单的学习了一部分算法,于是简单的总结一下自己学习的经历。

前话

在大一上学期,学长就开始教我们一些算法,dp,贪心之类的,但是很长时间就是不了解为什么要这样写,当时也被递归弄晕了很长很长时间,于是我写下这篇简单的自我学习经历,来帮助有缘人去学习算法,让新手不要面对算法不由得恐惧和逃避。因为我刚刚学完算法,所以看问题更像一个小白,所以同样适合作为小白的你.

学习经历

这里写作为我的学习经历,只将最重要的前因后果写上,过程走的弯路就不在此地写了。大一上学期的母语为c

  1. 大一在学c结束后的一段时间开始学数据结构,并刷了一部分洛谷的新手村,学会了简单的c++用法
  2. 大一上学期的假期开始学习一些c++的stl用法,和数据结构,学到的深度只是简单的脑子里有个印象
  3. 大一下学期开始跟随学校系统的学习数据结构,并留下了很深的印象(和之前的预习关系极大)
  4. 大一下学期的假期开始刷题,刷算法

这就是一个简单的过程,但我个人觉得这其中的任何一环出了问题,都会对之后的算法了解程度出现很大的影响.

学习算法的前提过程

  • 之前预习数据结构的时候,听的是浙江大学的数据结构课程,但是自己的理解能力有限,绝大多数还是仅仅有个印象
  • stl的学习是一位b站的大佬steve-yu做的视频,以及他自己写的一个stl简单的用法总结
  • 对数据结构的深度学习,一定要注重动手练,不动手的话,一定会感觉极其生僻而且很大可能学不好

学习算法的痛苦过程

刚开始像只无头苍蝇,就硬学,每天一道LeetCode题,到最后学到什么程度也不知道,硬生生写了半个月,但是感觉和之前没什么俩样于是开始寻找学习方法,找了蛮长时间终于找到了一个系统学习的方式,于是疯狂码题,现在大概是LeetCode100题的水平,期间也会经常自闭,也会顿悟的笑出声,反正是有高考内味了,泪目

学习算法的具体过程

按部就班的学习了labuladong的学习方法,知乎,leetc,微信公众号什么的都是这个,还有就是如果遇到生僻难懂的东西一定要去看视频,文字永远是有限的一种表达方式,不要死扣文字.

递归

递归的学习伴随着我大一一整个学期,真的是一个让人又爱又恨的方法,之后会写一写我对递归的理解,就不放在这里了,过一段时间我会按照自己的理解写一遍,也放在这个博客里面了。这是我学习递归给我启发最大的一篇文章

绝大多算法

绝大多数都是按照labuladong的方式学的,他的gitbook就放在这里

鸡蛋掉落问题

这个就是标准的学了非常长的时间还是没懂的问题,看b站的一个视频才勉强看懂

kmp算法

这个也是在b站上看懂的,非常难以理解,但在灯神(正月点灯笼)的讲解下豁然开朗,于是发现了如果实在是不懂的题一定要去看视频

总结

其实这篇文章并没有很大的含金量,就是简单的写了一下自己学算法前的一个准备情况和当前学习的一个具体方式,不过仅仅这样也应该能帮助一部分人,之后我会将自己学的所有算法按照自己的理解来重新复述一遍,希望对你们有一点用

猜你喜欢

转载自blog.csdn.net/Andrew_dlu/article/details/107839951
今日推荐