首页 > 编程语言 > 详细

有序全排列c++实现(递归)

时间:2020-02-14 20:19:25      阅读:94      评论:0      收藏:0      [点我收藏+]
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <iterator>
 4 #include <vector>
 5 using namespace std;
 6 int number;
 7 vector<int> vec;
 8 vector<bool> book;
 9 vector<int> ans;
10 void permutation(int k){
11     if(k > number - 1){
12         copy(ans.begin(), ans.end(), ostream_iterator<int>(cout, " "));
13         cout << endl;
14         return;
15     }
16 
17     for(int i = 0; i < number; i++){
18         if(!book[i]){
19             book[i] = true;
20             ans[k] = vec[i];
21             permutation(k + 1);
22             book[i] = false;
23         }    
24         
25     }
26 }
27 int main(){
28     cin >> number;
29     for(int i = 0; i < number; i++){
30         vec.push_back(i + 1);
31         book.push_back(false);
32     }
33     ans.assign(number,0);
34     permutation(0);
35     return 0;
36 } 

 

有序全排列c++实现(递归)

原文:https://www.cnblogs.com/AGoodDay/p/12309175.html

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