資源簡介
用迭代法,遞歸法解決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? 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
評論
共有 條評論