回溯算法 八皇后

什么是回溯算法

回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。

常见的案例

二叉树的前中后遍历,图的遍历等等。

8皇后简介

八皇后算法描述如下:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法!


图1
JAVA代码
    int[] clos = null;
    int count = 0;
    public void placeQueues(int n){
        if(n < 1){
            return;
        }
        clos = new int[n];
        queue(0);
        System.out.println(n+"皇后一共有"+count+"种摆发");
    }

    public void  queue(int row){
        if(row == clos.length){
            count ++;
            print();
            return;
        }
        for(int col=0;col
运行结果
图2

你可能感兴趣的:(回溯算法 八皇后)