分治算法
摘要:使用分治法设计程序时,一般可以按照以下步骤进行: (1)分解:将要求解的问题划分成若干规模较小的同类问题; (2)求解:当子问题划分得足够小时,用较简单的方法解决; (3)合并:按求解问题的要求,将子问题的解逐层合并,即可构成最终的解。 下面看一个实例:乒乓球比赛赛程安排(8人赛) 一直拆分,但是拆
阅读全文
posted @
2017-12-27 20:59
小~虎
阅读(204)
推荐(0)
递归算法
摘要:递归算法,就是一种直接或者间接的调用自身的算法,递归算法的具体实现过程一般通过函数或者子过程来完成,在函数或者子过程的内部,编写代码直接或者间接的调用自己,即可完成递归操作。 递归实例 (求阶乘) return i*fact(i-1);就是使用了递归调用
阅读全文
posted @
2017-12-27 20:22
小~虎
阅读(518)
推荐(0)
枚举(穷举)法
摘要:枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件: (1)可预先确定候选答案的数量; (2)候选答案的范围在求解之前必须有一个确定的集合。 填数游戏 用循环的方式,将最后要求的数字算出来,这就是利用枚举法算出结果。
阅读全文
posted @
2017-12-27 19:54
小~虎
阅读(796)
推荐(0)
递推算法
摘要:递推算法使用“步步为营”的方法,不断利用已有的信息推导出新的东西。 顺推法:是指从已知条件出发,逐步推算出要解决问题的方法。例如:斐波拉契数列就可以通过顺推法不断递推算出新的数据。 逆推法:是从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。 顺推实例, 从最后一列可以看出,
阅读全文
posted @
2017-12-27 19:19
小~虎
阅读(590)
推荐(0)