Data structure and Algorithm
神游天外
这个作者很懒,什么都没留下…
展开
-
经典算法系列---hanoi塔问题
当n > 1时,我们分三个阶段:1:将A塔座上的n-1个圆盘按照规定移至到B塔座2:将编号为n的圆盘由A座移至C座3:利用A塔座,将B塔座上的n-1个圆盘按规定移至到C塔座如何将n-1个圆盘由一个塔座移至到另一个塔座是一个和原问题有相同特征属性的问题,只是问题的规模小些,我们可以用同样的方法求解,即用到递归函数原创 2015-05-12 22:05:33 · 952 阅读 · 0 评论 -
算法分析之回溯法
回溯法的基本思想 (1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。两个常用的剪枝函数:(1)约束函数:在扩展结点处减去不满足约束的子数(2)限界函数:减去得不到最优解的子树原创 2015-05-14 22:48:37 · 681 阅读 · 0 评论 -
经典算法系列之n皇后问题
N皇后问题是一个经典的问题,在一个N*N的棋盘上放置N个皇后,每行一个并使其不能互相攻击(同一行、同一列、同一斜线上的皇后都会自动攻击)。求解N皇后问题是算法中回溯法应用的一个经典案例回溯算法也叫试探法,它是一种系统地搜索问题的解的方法。回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。 在现实中,有很多问题往往需要我们把其所有可能穷举出来,然后从原创 2015-05-14 23:35:46 · 943 阅读 · 0 评论 -
算法分析之递归策略
特点:(1) 递归就是在过程或函数里调用自身。(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。所以一般不提倡用递归算法设计程序。原创 2015-05-15 21:03:27 · 780 阅读 · 0 评论