递归实现排列形枚举
把1到n这n个数排成一行后随机打乱,输出所有可能的次序
代码:
int order[20];//按顺序依次记录被选择的整数
bool chosen[20];//标记被选择的整数
void calc(int k)
{
if(k=n+1)
{
for(int i=1;i<=n;i++)
printf("%d",order[i]);
puts("");
return;
}
for(int i=1;i<=n;i++)
{
if(chosen[i])
continue;
order[k]=i;
chosen[i]=1;//标记一填入的数字
calc(k+1);//第2,3,4,…,n个位置的数字(同一个位置)
chosen[i]=0;//换下一个数字放在第一个位置
}
}
相关文章
- 02-05利用echarts实现心形图片排列效果
- 02-05递归实现排列形枚举
- 02-0593.递归实现组合型枚举
- 02-05使用递归方法实现全排列
- 02-05蓝桥杯学习记录||93. 递归实现组合型枚举
- 02-05求一个集合S中m个元素的所有排列以及一个数组A的全排列—递归实现版完整代码
- 02-05acwing 93. 递归实现组合型枚举
- 02-05Acwing 92.递归实现指数型枚举
- 02-05Acwing 93.递归实现组合型枚举
- 02-05【题解】AcWing 92. 递归实现指数型枚举