算法的重要性

2018/08/08
从我接触到算法及数据结构的学习开始,就经常看到各种书中说,计算机程序就是由数据和算法组成的。但是我一直不能理解为什么这么说。
今天也是搜索了一下,
看到的比较多的回答是这样的,
我们解决问题的思路一般是三个步骤:
1)准备输入
2)处理数据
3)得到输出
这应该最最上层的抽象步骤。


他们也提到,如果你不会这两者,那你就是一个简简单单的程序猿,只会造轮子???
这句话我不是非常理解。后面解释的时候这样说,通过学习了基本的算法和数据结构,你在处理数据的时候,就可以按照一种已经有的解决方案。而不是重新寻求新的方案。我觉得这个解释比较重要。这也是给了我非常好的启发。
换句话说,就是说,还是学习了已经有的算法思维,来给我们后续的问题提供思路。


2018/08/08

其实引发这个问题的初衷就是因为我在一直探索的过程中,总是抓不到这两者的重要性。我不明白为什么,当然即使写下了上面那些话我还是不理解。
就是我每次解决问题的时候,并不能去思考以后的算法,那些东西不能给我帮助。
我感觉,我每次写程序,我就是按照一种过程式编程的思想来进行的。
最直观的说法,就是我在写程序的时候,就没有可以借鉴的东西。
所以我到底欠缺到哪里。
↑,或者说,上面的这个,就是因为我脑子里本身就没有??

https://www.happybearsoftware.com/how-learning-data-structures-and-algorithms-makes-you-a-better-developer

这个网址里面说的一句话非常对,就是说, 算法和数据结构只是解决问题的模式,你解决的问题越多,你在遇到新问题的时候,可借鉴的东西越多。而且,你想出的新方法也就越多。


我感觉,我的思维存在一些问题,导致我每次都是感觉脑子里空空的,想问题有些直。
所以这样以来,其实是我思考问题,或者解决问题的思路不对。


2018/08/08
看了算法设计手册(The algorithm design manual)这个书的前言。他在说明这个问题的时候,就是说, 一些计算机专家也是靠这种东西的积累来解决问题。
而且提到的一句话,很重要,可能是我自己理解的,可以把这个问题转化成我熟悉的经典算法要解决的问题。


另外一个方面,我也应该有意识地去思考,我现在的程序里面,我为什么要去使用这个数据结构,因为只有这样,我才能更加理解这个数据结构或者算法的重要性。
你比如说,我今天看到的一个内容,他说了哈希表这个结构,然后对于这个数据结构呢,他有提供了几个算法,但是这几个算法就是哈希表的插入和删除等。
因为我一直是知道的,算法比较规范的一个定义就是把解决问题的一个流程,我在怎么样也没办法把这些个东西给划归到这个定义里面。

其实这种内容就被我主观的认为比较简单,就忽略了,我不知道把他算进去是不是对,还是我这样本能的认为就是对的。这估计得靠时间来回答了。
关键就是,对我平时的思考中,我没有办法想到比较适合要求的算法来解决问题。脑子里一片空空。就比如说,我当时在大二时候参加程序比赛的时候,有一个问题就让我很头疼, 当然是那个时候,那个时候没有学过数据结构。那这就是症结所在了,开头说的那三个步骤都有了,但是在最重要的第二个步骤,首先就是没有把数据有更好的方式给展现出来,当然就是由于第一个东西我根本没有办法继续后面的步骤。这也许就是算法。
2018/08/12
(我觉得还有一个比较重要的点,这个点说白了就是积累的问题,)但从另一个角度来说,应该是把实际问题转化到数据结构上来,相应的就是用数学语言把这个问题给表述出来。也不是说完全的就纯现实里的生活,先从最基础的来(感觉这里就像一个简单的抽象问题。)。
---->给定一个算法问题,然后利用基础的算法和数据结构来解决问题。(现在我连这个基础的映射都没有建立起来,所以解决问题的时候就总没有感觉。)思维思维,别他妈说什么思维定势,你他娘的连思维都没有呢。
(这个层次应该算是哪个方面呢,在抽象级别上。)
2018/08/12
这里我想的是,怎么样通过算法来解决我的问题。
2018/08/13
看到了很久之前针对无法将模式展示出来的问题,如果到数据结构层次,就是我上面说没有建立足够多的映射。(当然我那个问题不能仅仅用这个说辞来回答,更深刺的应该是机器学习里面的模式到底是一种怎样的表现模式)


2018/08/15
算法重要我是知道的,不过呢,现在也跟原来一样,感觉那些理论上的东西跟我还是太远。
你想上面的那些个问题,其实我在日常中很慢遇到这个东西。这就很尴尬。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值