算法这一站是新的起点

  之前零星了解一点算法的东西,但提到算法我和大多数人一样,认为那是rocket science(高深的技术)。至于“程序=数据结构+算法”,想必也是只有深入研究以后才有的感受吧。

       年初,决定深入地研究一下算法知识,于是系统地看了几本书,坚持上了几个月的课,从排序、基本数据结构、一致性哈希、分治、动态规划、回溯、贪心,到二叉查找树、哈夫曼树、B树、B+树等等,也算是深入了一些。前两周在公司做了一次算法分享,同事们都觉得很不错,我会继续将自己学到的东西写下来,讲出来,跟大家分享。今天就是想说说自己学算法以来的心得。

 

   我觉得算法教给我的是一种情怀:

 

        1.计算最大公约数的方法那么多,为什么是欧几里得呢?因为别的方法就像我们常说的“拿眼一看就知道啊”,而只有欧几里得是可以量化为一步步实现步骤的,能写出代码的才能被机器执行,所以AI大概也就是基于大数据和一些算法实现的思维吧,拿眼一看就知道的本事估计一时半会还有不了。

        2.大家一定都很喜欢递归吧,我也是。虽然在很多情况下递归的使用导致程序低效,但还是一万遍地觉得递归好。递归好在什么地方呢?简单,易用,像方程有木有,可以顺着思路走,不那么费脑筋。我对这个问题思考了好久,觉得递归最美的地方在于它的封装!

        3.斐波那契数列,原来科学原本就很美。为什么这么多年都没发现?以前怎么从来没有人告诉我数学是美的,语文是美的,代码更是美的?

前些天看了一篇文章,讲的是一个很经典的“鸡兔同笼”问题。我触动很大。我们原本的思维是发散的,具有创造性地,没有约束、不受限制的,可是后来我们被教给了很多模式,我们被要求只用这种模式解决问题,后来我们被改造成了一个只会套用模式的人(英国的研究生不会背九九乘法表你能想象吗)。是的,我们被教育,又将教育别的人,尽可能地发散思维吧,让事情有趣一点,它原本就是这个样子,不是变成了我们看到的样子,而是我们没有看到它真正的样子。

        4.动态规划,如果我选择拿这一个直接影响我能不能拿下一个,我怎么知道要不要拿这一个?究竟是拿这一个还是下一个才是最好的?这么难解的问题居然被动态规划给解了,脑洞!脑洞!世界上不是缺少答案,而是缺少方法。方法也不难,无非“拿”和“不拿”。所以,人每天纠结的不也就是两件事,做还是不做,看一下当前做会怎样,不做会怎样,然后答案就有了。

        5.曾经只会选择和冒泡的我,现在知道了,想怎么排就怎么排,怎么合适怎么排。

        6.分治,没用过Hadoop,但知道Map-Reduce的核心其实就是分-治。分治就是一种思想,不管是减治、分治还是变治,把大事化小,就是解决之道,人生的路那么长,今天就是你昨天担心的明天,所以真理就是过好今天。学算法的同时重新学了底层的一些东西,我发现所有高大上的东西都是基于一样的底层,所以,从这里,我看到了日后要学要做的好多东西,从一个点就可以延伸到好多个方向,而且有了底层的基础,就可以延伸到好远,这种感觉,很幸福。

   小结:学到的东西应该像原料,装进的是发动机,然后越来越有动力;而不是货物,成为了负载,越走越艰辛,终有一天不堪重负。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值