算法的学习

这接近一个月,每天基本都抽出一点时间来对数据结构和算法进行学习,几点收获的感触:

1.数据结构是基础,必须要对数据结构十分熟悉才能继续学习算法相关,数据结构的掌握程度不需要对每个设计的数学推导明白,只需要掌握结构的设计思想和用一门静态语言完整的实现出来,推荐看书而不是几个博客。

2.算法要先对各种算法的思考方式熟悉,比如可以看《图解算法》和极客时间的一个王争的专栏,这只是扫盲和对算法有个基本认知。

3.在真正掌握了前两点后,可以开始看《算法》,这本书翻译质量和内容上,可以说还不错,这本书难度不是特别高,第一遍可以吃个60%,然后可以开始做题了。

4.虽然本人有一定的基础,但还是花了一点时间在前两步,至于第三步如果对自己的智商自信可跳过直接刷题,对于leetcode上的题,我是采用的快刷而不是细刷,其实大部分都是重复的套路,我们无非是讲做题的思路压到脑袋里,这里并不是一天几十道,一周几道就够了,当刷的很吃力的时候,只能说明一个问题,你的前三步没做好,因为前面的题对智商并没有要求那么高,所以我还是觉得第三步不能跳过。

5.不要随便产出,因为这并非是一个搭建个框架,部署个项目这种经验活,是一种对问题的抽象到具体,一旦自己本来就理解错了,那么再错误的产出一遍那真的糟透了,还是多看书,如果前4步都认为做好了,可以学点真正的算法了,比如《算法导论》高司令的几本书,《编程珠玑》《具体数学》等数学教材,还要看一些哲学类的书籍,我个人以为这些算法的概念不是因为计算机的产生才产生的,而是天才们把生活的抽象化再具象化实现到代码逻辑上,所以没有从业者是需要具备一点哲学思维的,我个人读过其书且很喜欢的哲学家有罗素,笛卡尔,柏拉图,稍微推荐。

 

本人也只是在前三段打转,智商和努力程度还不够。

本人的智商是绝对想不出很巧妙的算法思路的,所以我对这块的学习一直在模仿。这个单纯的模仿有用吗?肯定是有用的,毕竟都是些天才人物研究出来的东西。但毕竟要把天才的思路硬加到自己的低智商脑袋上也很困难,所以要做题。

(及时补充)

你可能感兴趣的:(算法的学习)