深度搜索算法,主要是利用递归实现。递归就要有终止条件,否则就会进入死循环。
一般深度搜索算法的算法模板是:
创建一个大表, data[m][n];
int DFS(int i, int j)
{
max=0;用于返回的数值
if(满足递归条件)
{
DFS(int a,int b);//再进入下一层递归
}
。。。。
return max+1; //以上递归不满足的话,就返回。
}
一般为了更高的效率,使用了剪枝法
用另外一个数组记录 count[m][n];
DFS(int i, int j)
{
if(count[i][j]>0)
{
return ;
}
if() //满足条件,继续递归
{
DFS()...
}
return count[i][j]+1;
}
原文:http://www.cnblogs.com/isjune/p/4647000.html