zoukankan      html  css  js  c++  java
  • 求1到n,n个整数的全排列

    package com.dong.harder;
    
    public class AllArrays {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int n = 5;
            int[] Sured = new int[6];
            printPermutation(5, Sured, 0);
    
        }
        //Sured中存放的是已经确定的序列,cur表示当前需要确定的元素的位置。
        //由于一共是是n个元素,当cur为n时候,表示已经全部递归完成
        public static void printPermutation(int n,int[] Sured,int cur){
            if(cur == n){
                for(int i = 0; i< n; i++){
                    System.out.print(Sured[i]);
                }
                System.out.println();
            }
            //这里将选择一个Sured中不包含的元素,加入Sured,进入下一步递归
            else{
                for(int i =1; i<=n; i++){
                    int ok = 1;
                    for(int j = 0; j < cur; j++){
                        if(Sured[j] == i){
                            ok = 0;
                        }
                    }
                    if(ok == 1){
                        Sured[cur] = i;
                        //找到Sured中不包含的那个元素,然后进行下一步递归,cur加1
                        printPermutation(n, Sured, cur+1);
                    }
                }
            }
        }
    }

    这里用递归实现。

    在n为9时候,以1开头的全排列的特点是,第一位是1,后面是2-9的全排列,2-9接在进行全排列,这里就可以使用递归。

    代码如下

  • 相关阅读:
    nohup 运行后台程序
    配置了yum本地源
    rhel 6.7 离线安装docker
    java timer 执行任务
    遇到的sql关键字
    mysql事务和锁
    Mysql命令大全
    mysql keepalived
    mysql主从复制
    mysql从binlog恢复数据
  • 原文地址:https://www.cnblogs.com/dongqiSilent/p/3434392.html
Copyright © 2011-2022 走看看