2 shell33168 shell33168 于 2017.09.18 23:40 提问

回溯是如何穷举搜索的啊?

生成二进制串的代码如下:

 import java.util.Arrays;

/**
 * 生成所有0,1组合的,n位长的字符串
 * author:yangz yuan
 * */

public class P32_Binary{
    public static void Binary(int n,int[] A){
        if (n<1){
            System.out.println(Arrays.toString(A));
        }else{
            A[n-1]=0;
            Binary(n-1,A);
            A[n-1]=1;
            Binary(n-1,A);
        }
    }

    public static void main(String[] args) {
        int n=2;
        int[] A=new int[n];
        Binary(n,A);
    }
}

谁能跟我解释一下else里面怎么运行的啊?
else里面第一次调用了方法自身,它之后的
A[n-1]=1 和 Binary(n-1,A);为什么会被执行呢?

1个回答

caozhy
caozhy   Ds   Rxr 2017.09.19 11:41

这个就是递归啊,递归明白么?

Csdn user default icon
上传中...
上传图片
插入图片