码迷,mamicode.com
首页 > 其他好文 > 详细

递归全排列

时间:2020-05-01 16:38:46      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:释放   全局变量   arch   nbsp   code   lse   style   bit   变量   

 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<<"\n";
39 }

 

递归全排列

标签:释放   全局变量   arch   nbsp   code   lse   style   bit   变量   

原文地址:https://www.cnblogs.com/zhmlzhml/p/12813794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!