//检查八皇后算法中,放置第n个皇后是否和前后的产生冲突
public boolean judge(int n)
{
//跟前面已经放置的相比较
for(int i=0;i<n;i++)
{
//1、同一列上产生冲突
//2、行差和列差的值相等产生冲突,即在同一斜线上
if(array[i]==array[n]||Math.abs(n-i)==Math.abs(array[n]-array[i]){
return false;
}
}
return true;
}
//放置皇后的位置
public void putCheck(int n)
{
//倘若n等于皇后的数目,则说明已经超出范围,可以打印前面已经放置好皇后的位置
//max定义为8
if(n==max)
{
print();
return;
}
for(int i=0;i<max;i++)
{
array[n]=i;
if(judge(n)) //检查是否发生冲突
{
putCheck(n+1);
}
}
}
//打印输出
public void print()
{
//完成一次八皇后排序,就打印一次
//八皇后算法总共有92种排序
for(int i=0;i<arr.length;i++)
{
System.out.print(arrau[i]+" ");
}
System.out.println();
}
八皇后算法
最新推荐文章于 2024-11-06 08:56:39 发布