首页 > 其他 > 详细

生成1-n的全排列...

时间:2014-01-17 00:22:58      阅读:461      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 #include "stdafx.h"
 2 #include<iostream>
 3 #include<string>
 4 using namespace std;
 5 const int MaxNum=9;
 6 int iArr[MaxNum];//定义数组
 7 void print(int cur,int n);
 8 inline void Swap(int *a,int *b)//交换两个位置的值
 9 {
10     int temp;
11     temp=*a;
12     *a=*b;
13     *b=temp;
14 }
15 int _tmain(int argc, _TCHAR* argv[])
16 {
17      for(int i=0;i<MaxNum;i++)iArr[i]=i+1;//初始化
18      print(0,2);
19     return 0;
20 }
21 
22 void print(int cur,int n)
23 {
24     if(cur==n)
25     {
26         for(int i = 0;i<=n;i++)
27             cout<<iArr[i];
28          cout<<endl;
29     }
30 
31     for(int i=cur;i<=n;i++){//第一次是无效替换——Swap(&iArr[k],&iArr[k]);这是个技巧
32         Swap(&iArr[cur],&iArr[i]);
33         print(cur+1,n);
34         Swap(&iArr[i],&iArr[cur]);
35     }
36     
37 
38 }
bubuko.com,布布扣

生成1-n的全排列...

原文:http://www.cnblogs.com/crazycodehzp/p/3522364.html

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