java版迭代回溯算法和递归回溯算法
上完回溯法的算法后,为了避免以后忘记了这些算法,自己实现了一遍,仅供大家学习参考,以下是代码:
package ctong;
import java.util.Random;
public class NQueen {
/**
* ctong
*/
//可行解数组,从X[1]开始使用
private static int[] X ;
//X数组的长度
private static int nn ;
//记录可行解数目
private static int sum=0;
/**
* 迭代算法
*/
public void iteration(int n){
int k=1;
while(k>0){
X[k]++;
while(X[k]
X[k]++;
}
if(X[k]
if(k==n-1){
print();
}
else{
k++;
X[k]=0;
}
}else k--;
}
}
/**
* 递归算法
*/
public void recursion(int p){
for(X[p]=1;X