递归实现排列型枚举

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;
}
相关推荐
博笙困了5 分钟前
AcWing学习——差分
c++·算法
NAGNIP8 分钟前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP9 分钟前
大模型微调框架之LLaMA Factory
算法
echoarts9 分钟前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Python技术极客15 分钟前
一款超好用的 Python 交互式可视化工具,强烈推荐~
算法
徐小夕19 分钟前
花了一天时间,开源了一套精美且支持复杂操作的表格编辑器tablejs
前端·算法·github
小刘鸭地下城31 分钟前
深入浅出链表:从基础概念到核心操作全面解析
算法
小刘鸭地下城41 分钟前
哈希表核心精要:从 O(1) 原理到链式地址与开放寻址
算法
BenChuat1 小时前
Java常见排序算法实现
java·算法·排序算法
元亓亓亓1 小时前
LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
算法·leetcode·职场和发展