暴力求解法——枚举排列

Posted 小乖乖的臭坏坏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暴力求解法——枚举排列相关的知识,希望对你有一定的参考价值。



代码:

public class EnumerationArrangement 
    public static void main(String[] args) 
        int[] A = 1,2,3,4,5;
        print_repermutation(A.length, A, 0);
    

    public static void print_permutation(int n, int[] A, int cur)
        if(cur == n)//递归边界判断
            for (int i=0;i<n;i++)
                System.out.print(A[i]+" ");
            
            System.out.println();
        
        else//没达到截止条件
            for (int i = 1;i<=n;i++)//尝试在A[cur]中填入各种整数i
                boolean flag = true;
                for (int j = 0;j<cur;j++)
                    if(A[j]==i)flag = false;//如果i已经在之前出现过,则不能再选择
                
                if(flag)//只要没有出现过,则让这个值等于A[cur]
                    A[cur] = i;
                    print_permutation(n,A,cur+1);//递归调用
                
            
        
    

    public static void print_repermutation(int n, int[] A, int cur)
        if(cur == n)//递归边界判断
            for (int i=0;i<n;i++)
                System.out.print(A[i]+" ");
            
            System.out.println();
        
        else//没达到截止条件
            for (int i = 1;i<=n;i++)//尝试在A[cur]中填入各种整数i
                A[cur] = i;
                print_repermutation(n,A,cur+1);//递归调用

            
        
    



以上是关于暴力求解法——枚举排列的主要内容,如果未能解决你的问题,请参考以下文章

暴力求解法——简单枚举

暴力求解法——简单枚举

暴力求解法/模拟

暴力求解法——子集生成(位向量法)

暴力求解法——子集生成(位向量法)

暴力求解法——子集生成(位向量法)