首页 > 其他 > 详细

递归全排列

时间:2020-05-01 18:23:47      阅读:51      评论:0      收藏:0      [点我收藏+]
 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 }

 

递归全排列

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!