递归-八皇后问题(回溯算法)
2021-12-08 19:10:20 0 举报
递归-八皇后问题(回溯算法)流程图
作者其他创作
大纲/内容
0
private void checkGame(int numIn) { if (numIn == col) { showBoard(); return; } for (int i = 0; i < col; i++) { checkerBoard[numIn] = i; if (judge(numIn)) { checkGame(numIn + 1); } } }
进入方法
1行
0行
checkerBoard
递归return执行
为8位皇后找位置
queenEightDemo.checkGame(0);
初始化稀疏数组
调用
private static final int col = 8; private static final int[] checkerBoard = new int[col];
传入numIn,不在同一列,不在对角线进行检测,当前皇后之前下的有错犯规以后,就return false寻找下一个适合当前皇后的位置,如果所有都没有犯规就return ture为下一个n+1皇后寻找位置
2行
for (int i = 0; i < numIn; i++) { if (checkerBoard[i] == checkerBoard[numIn] || Math.abs(numIn - i) == Math.abs(checkerBoard[numIn] - checkerBoard[i])) { return false; } } return true;
4
7行
0 条评论
下一页