递归实现排列型枚举

cpp 复制代码
#include<iostream>
using namespace std;

const int N = 10;
int state[N];
bool used[N];
int n = 0;
void dfs(int u) 
{
	if (u > n) 
	{
		for(int i=1;i<=n;i++)
			printf("%d ", state[i]);
		printf("\n");
	}
	for (int i = 1; i <= n; i++)
	{
		if (!used[i])
		{
			state[u] = i;
			used[i] = true;
			dfs(u + 1);
			
			state[u] = 0;
			used[i] = false;
		}
	}

}
int main()
{
	scanf("%d", &n);
	dfs(1);
	return 0;
}
相关推荐
ysn111111 分钟前
简单多边形三角剖分---耳切法(含源码)
算法
e疗AI产品之路2 分钟前
一文介绍Philips DXL心电图算法
算法·pan-tompkins·心电分析
小袁顶风作案11 分钟前
leetcode力扣——135.分发糖果
算法·leetcode·职场和发展
橘颂TA22 分钟前
【Linux】从 “抢资源” 到 “优雅控场”:Linux 互斥锁的原理与 C++ RAII 封装实战(Ⅰ)
linux·运维·服务器·c++·算法
YGGP37 分钟前
【Golang】LeetCode 19. 删除链表的倒数第 N 个节点
算法·leetcode·链表
池塘的蜗牛44 分钟前
mmse-based-OFDM-signal-processing(2)
算法
平生不喜凡桃李1 小时前
Leetcode-240 :搜索二维矩阵
leetcode·矩阵·深度优先
Kris_LinSD1 小时前
算法小实验——分治算法快速排序问题实验(含报告)
c语言·算法
Super小白&1 小时前
十大经典排序算法详解(附C语言实现+复杂度分析)
c语言·算法·排序算法