一、递推算法思想
递推算法是一种简单的算法,通过已知条件,利用特定关系得出中间推论,逐步递推,直至得到结果为止。
1.算法思路
递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。利用现有信息得到新信息,是递推算法的核心。
顺推法:从已知条件出发,逐步推算出要解决问题的方法。
逆推法:从已知结果出发,用迭代表达式逐步推算出问题开始的条件。
2.顺推实例:斐波那契数列--“如果一对兔子每月能生下一对小兔子,而每对小兔在它出生后的第3个月里又能开始生一对兔子,问一年后一共有多少只兔子?”
逆推实例:“父亲为小明准备了大学四年生活的钱,每月生活费为1000,银行年利率为1.71%,算出父亲至少要存多少钱”
二、枚举算法思想
将所有的候选答案选出后就可以找出正确的解或无解。
三、递归算法思想
注意:在递归调用的过程中,系统将每一次递归调用的返回点、局部量等保存在系统的堆栈中,当递归调用的次数太多时,就可能造成堆栈溢出等。递归效率较低,一般不提倡使用。
四、分治算法思想
把一个较大的问题,分成几个较小的问题,找出这几个子问题的求解方法后,再找到合适的方法,把他们组合成求整个问题的解法。(很实用的想法)
五、贪婪算法思想
不从整体最优考虑,只选择在某种意义上的局部最优选择。
六、试探法算法思想
试探法也称回溯法,它是一种系统地搜索问题解的方法。例如:迷宫。