首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全排列模板

全排列模板

作者头像
CaesarChang张旭
发布2021-03-08 12:37:58
4150
发布2021-03-08 12:37:58
举报
文章被收录于专栏:悟道悟道

把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。 输入格式 一个整数 n。 输出格式 按照从小到大的顺序输出所有方案,每行 1 个。 首先,同一行相邻两个数用一个空格隔开。 其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

import java.util.Scanner;

public class Main {
static int [] rec;
static boolean[] used;
static int n;
public static void main(String[] args) {

	
	Scanner scanner=new Scanner(System.in);
	 n=scanner.nextInt();
	rec=new int[n+1];
	used=new boolean[n+1];
	
	dfs(1);
	
}
private static void dfs(int x ) {
	
	
		if(x>n) {
			for(int k=1;k<=n;k++) {
				System.out.print(rec[k]+" ");
			}
			System.out.println();
			return;
		}
		
	
		for(int i=1;i<=n;i++) {
				
				if(!used[i]) {
					rec[x]=i;
					used[i]=true;
					dfs(x+1);
					rec[x]=0;
					used[i]=false;
				}
			
		}
	}
	
	
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档