递归实现排列型枚举

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;
}
相关推荐
@Aurora.4 分钟前
优选算法【专题三:二分查找算法】
算法
soldierluo4 分钟前
向量与向量数据
人工智能·算法·机器学习
a努力。20 分钟前
字节跳动Java面试被问:一致性哈希的虚拟节点和数据迁移
java·开发语言·分布式·算法·缓存·面试·哈希算法
VT.馒头29 分钟前
【力扣】2622. 有时间限制的缓存
javascript·算法·leetcode·缓存·typescript
Hcoco_me30 分钟前
大模型面试题71: DPO有什么缺点?后续对DPO算法有哪些改进?
人工智能·深度学习·算法·自然语言处理·transformer·vllm
mit6.82433 分钟前
dfs|bfs建图|hash贪心
算法
罗湖老棍子1 小时前
团伙(group)(信息学奥赛一本通- P1385)
算法·图论·并查集
Ka1Yan2 小时前
[链表] - 代码随想录 160. 相交链表
算法·leetcode·链表
学嵌入式的小杨同学2 小时前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
rgeshfgreh2 小时前
顺序表实战:构建到销毁全解析
算法