算法
juzipeek
这个作者很懒,什么都没留下…
展开
-
算法
fact递归的过程 我们再来试试编写计算斐波那契数列的函数int fib(int n)。斐波那契数列的定义是a0=0、a1=1以及an=an-1+an-2 (n>1)。这里,初项的条件就对应了递归的终止条件。数列的定义直接写成函数就可以了。 实际使用这个函数时,即使是求fib(40)这样的n较小时的结果,也要花费相当长的时间。这是因为这个函数在递归时,会像下图一样按照指数级别扩展开来。转载 2013-09-17 18:39:20 · 649 阅读 · 0 评论 -
宽度优先搜索BFS
宽度优先搜索(BFS,Breadth-First Search)也是搜索的手段之一。它与深度优先搜索类似,从某个状态出发探索所有可以到达的状态。 与深度优先搜索的不同之处在于搜索的顺序,宽度优先搜索总是先搜索距离初始状态近的状态。也就是说,它是按照开始状态→只需1次转移就可以到达的所有状态→只需2次转移就可以到达的所有状态→……这样的顺序进行搜索。对于同一个状态,宽度优先搜索只经过一次,因此转载 2013-09-18 12:02:34 · 940 阅读 · 0 评论 -
dfs
深度优先搜索(DFS,Depth-First Search)是搜索的手段之一。它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解。例如求解数独,首先在某个格子内填入适当的数字,然后再继续在下一个格子内填入数字,如此继续下去。如果发现某个格子无解了,就放弃前一个格子上选择的数字,改用其他可行的数字。根据深度优先搜索的特点,采用递归转载 2013-09-18 11:03:36 · 792 阅读 · 0 评论