怎样学算法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_18525953/article/details/62227937

学习编程算法应该从两个方面思考自己掌握的程度

================================================

1.已经知道了怎么写,最快无误的把这个“知道”变成代码的能力

这个能力主要用写过的自创成功的代码量来衡量

主要是

一遍正确的能力

疲劳状态下找错能力

知道自己写过的程序是否含有错误的能力

================================================

2.遇到问题,能想出 用程序的方法 解决这个问题 的算法  的能力

这个能力的提高主要靠学习算法问题来提高

下面来详细解释一下如何“学习算法问题”

他有三个等级

(1)会解决这个问题了

如含多层括号的+-*/表达式求值

记住“含开头结尾符#的符号大小记录”和“一个数栈一个符栈”这个问题你就会了

(2)会这个算法方法了

这里的算法方法指:如-栈思想,动态规划思想

通过多遇到几个可以用这种算法方法解决的问题来提高

(3)会创造这个算法了

比如遇到了一个问题

这个问题所需要的算法没有前人遇到过

那就需要这种能力了

怎样提高?

学习表达式求值问题的时候

思考前人是怎么从这个问题抽象出解决方法的

思考方法:

先考虑问题最困难形式:如1+1*(2+2*3+(1+1))*2

取问题最简单形式:如1+1*2

寻找解决思路1:先搜索等级最高的()然后从左到右计算,再计算*,再计算+

结果不适应最苦难形式问题

寻找解决思路2:+是否执行由+和+后面的符号的优先级决定(可行)

若不可解决最苦难问题,再次从最简单问题带上失败原因来思考新方法

猜你喜欢

转载自blog.csdn.net/qq_18525953/article/details/62227937