递归全排列
Posted zhmlzhml
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了递归全排列相关的知识,希望对你有一定的参考价值。
1 // 2 // Created by Arc on 2020/5/1. 3 //其实有一个伟大的函数叫next_permutation(arr, arr+size)也是全排列 4 //下面展示一下代码 5 #include <bits/stdc++.h> 6 using namespace std; 7 int a[1001]={0}; 8 bool b[100]={0}; 9 int num=0;//全局变量,总个数 10 void search(int); 11 void print(); 12 int n; 13 int main(){ 14 cin>>n; 15 search(1); 16 cout<<num; 17 18 } 19 void search(int t){ 20 for(int i=1;i<= n ;i++){//每种情况的遍历 21 if(!b[i]){//如果没有被用过 22 a[t]=i;//赋值 23 b[i]=1;//标记用过 24 if(t==n) 25 print(); 26 else 27 search(t+1); 28 b[i]=0;//递归不下去了才会回到这一步,所以这一步就是释放状态的 29 30 } 31 } 32 } 33 void print(){ 34 num++; 35 for(int i=1;i<=n;i++){ 36 cout<<a[i]<<" "; 37 } 38 cout<<" "; 39 }
以上是关于递归全排列的主要内容,如果未能解决你的问题,请参考以下文章