资源简介
用迭代法,递归法解决N后问题,打印出正解的位置,输出所有解,输出各个程序的执行时间,方便对比各个程序的优略.舍伍德算法则是算出一组解即可。可以对比一下执行效率。
代码片段和文件信息
package nqueen;
import java.io.*;
/**
*
* 程序目的:回溯法做N皇后问题
*
* @author Sun
*
* 2011-11-20
*/
public class Backtrack {
/**
* @param args
*/
private int N = 65535;// 问题的规模(注意:此处必须要定义一个数值,因为在下一句数组的定义时要用到此数字,否则报错)
private int[] position = new int[N + 1];// 存放解存放的位置
private int count = 0;// 存放解的个数
/**
* 设置问题的规模
*/
public void setN(int n) {
this.N = n;
}
/**
* 返回规模值
* @return
*/
public int getN() {
return N;
}
/**
* 得到解的个数
*
* @return
*/
public int getCount() {
return count;
}
/**
* 此位置能否放置皇后
*
* @param row
* @return
*/
public boolean Safe(int row) {
int i;
for (i = 1; i < row; i++) {
if (position[row] == position[i]
|| i - position[i] == row - positio
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2303 2011-11-21 13:41 Backtrack.java
文件 2630 2011-11-21 13:42 NQueen.java
文件 2928 2011-11-28 20:31 QueenRandomSet.java
评论
共有 条评论