美文网首页
递归——数组全排列

递归——数组全排列

作者: 就这样吧嘞 | 来源:发表于2019-05-13 07:56 被阅读0次

方法一 深度

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
//      Scanner sc = new Scanner (System.in);
        int sz[] = {1,2,3,4,5,6};
        digui(sz,0,5);
        
    }
    public static void swap(int aa[],int m,int n) {
        int x =aa[n];
        aa[n]=aa[m];
        aa[m]=x;
    }
    public static  void digui(int aa[],int start ,int end) {
        if(start==end) {
            for(int i=0;i<aa.length;i++) {
                System.out.print(aa[i]);
            }
            System.out.println();
        }
        else {
            for(int j=start;j<=end;j++) {
                swap(aa,start,j);
                digui(aa,start+1,end);
                swap(aa,start,j);
            }
        }
        
    }
}

方法二 字典序递归

public class Main {
    static int aa[]= {1,2,3};
    static int bb[]=new int[aa.length];
    public static void main(String[] args) {
        pailie(0);
    }   
    public static void pailie(int dibiao) {
        if(dibiao==aa.length) {
            shuchu();
            return;
        }
        else {
            for(int i=0;i<aa.length;i++) {
                int p=aa[i];
                if(cishu(bb,p)<cishu(aa,p)) {//bb中次数小于a中次数时
                    bb[dibiao]=p;
                    pailie(dibiao+1);
                    bb[dibiao]=0;
                }
            }
        }
    }
    private static void shuchu() {
        for(int i=0;i<bb.length;i++) {
            System.out.print(bb[i]);
        }
        System.out.println();
    }
    public static int cishu(int ku[],int x) {//返回数组中x出现 的次数
        int sum=0;
        for(int z:ku) {
            if(z==x) {
                sum++;
            }
        }
        return sum;
    }
}

相关文章

  • 递归——数组全排列

    方法一 深度 方法二 字典序递归

  • 46. Permutations

    算法 1: 递归数组 的全排列,等价于全排列与可能的取值组合得到。 算法 2: 计算一个排列 按字典升序排列的紧...

  • 递归 实现数组全排列

    题目:给定一个字符数组: 要求打印出由a b c组成的全排列(即3!= 6个) ** 写在代码前: **想法是利用...

  • 全排列与字典序

    全排列 递归实现全排列; 首先来说递归算法实现全排列: 例如,对于{1,2,3,4}的例子进行全排列,其可以分解...

  • 46+47、Permutations、Permutations2

    数组全排列 Permutation Example 思路递归的方法,设置一个used数组,用来记录相应位置是否已经...

  • 递归实现js数组全排列

    规律 当n = 1时, 数组arr = [A],全排列结果为 [A]; 当n = 2时, 数组arr = [A, ...

  • ARTS w03- 求一个数组的全排列组合

    Algorithm 求一个数组的全排列组合。例子: 代码: 这是递归的实现。先交换最后的两个元素,然后不断向前递归...

  • 递归-全排列

    对数组{1,2,3}进行全排列 STL next_permutation

  • 全排列与全组合

    递归+交换值实现全排列 非重复的全排列 位运算实现全组和

  • 全排列

    题目:给出一个数组,输出全部元素所有的排列结果 一、递归方法 数学思想:全排列个数为n的阶乘,数学记为n!即 n*...

网友评论

      本文标题:递归——数组全排列

      本文链接:https://www.haomeiwen.com/subject/reukaqtx.html