乐趣区

关于算法:基础学习之算法

工作了两年,之前始终沉迷在业务当中,感觉算法的用途不太大,在这两年的工夫里跟算法相干的也就写过一个很根底的递归函数。刷过几道 leetcode,每次做题破费的工夫都很长,而且做了感觉对实际上的工作没啥帮忙。事实证明,我还是太浮浅

最近在跟大佬们交换的时候,很遗憾的发现自己变成了只会说,只会出思路然而算法编程能力为 0 的人,惨痛的教训是明天一个快排的递归花了快一个小时才纠结进去,思路都有,想法也了解,题目答案也都看过好几次,就是记不住,记不住就算了,现场推算还推算不进去,实质上就是写的不够多,根底啥的都是渣渣,所以昨天列完前端倒退方面的学习打算之后,明天开始列一下算法的学习思路。

说起算法,脑子里闪过最快的就是一堆名词,递归,动静布局,回溯,贪婪,分治,而后就是各种排序,堆排,快排,二叉树,堆栈,对列等等等等,还有工夫复杂度,空间复杂度之类的概念,这些都是最根底的办法和利用场景,目前而言想要学好算法,就得先从最根底的递归,动静布局,回溯,贪婪,分治开始学起,不论是排序还是数据结构的实际,其实都是以算法思维为根底的。在实际里用的最多的就是递归和动静布局。

所以,过了一下脑子之后,给本人列了一个算法学习的学习路线(仅供参考,因为感觉挺适宜我的)

1. 算法根底,递归,动静布局

先将这两种算法的原理彻底弄明确,深粗浅在脑子里,万变不离其宗,只有原理搞明确了,能把原理利用代码的模式输入来,其余的都不是问题

2. 回溯,分治,贪婪

这三种算法比起前两种算是进阶版了,同样的也须要明确原理,能将原理写进去,就胜利了一大半

3. 排序和查找

这是两类很典型的场景问题,js 的排序用 sort,查找用 indexOf,lastIndexOf 还有各种 api,6 得飞起,但还是须要从实质看问题,明确这些函数背地的原理,这样咱们才会有机会实现发明,而不是单纯的应用。

4. 数据结构

各种数据结构的代码实现以及数据结构的应用在我看来是更加底层的货色了,平时单纯业务开发基本用不上,然而很有学习的必要,特地是如果哪天你并不满足于单纯业务性能的时候,有了这些能力让技术更进一步。

小结:学习的思路临时就这些,还是要致力啊,根底不可旷废。

退出移动版