首页 > 其他 > 详细

全排列补充

时间:2019-05-12 13:30:19      阅读:125      评论:0      收藏:0      [点我收藏+]

上回说到全排列,这里进行补充。

运用搜索算法,进行全排列。

 1 #include<iostream>
 2 
 3 using namespace std;
 4 int a[1000];
 5 
 6 void search(int t)
 7 {
 8   if(t>3)
 9   {
10     for(int i=1;i<=3;i++)
11       cout<<a[i]<<" ";
12     cout<<endl;
13     return;
14   }
15   for(int i=1;i<=3;i++)
16   {
17     a[t]=i;
18     search(t+1);
19   }
20 }
21 
22 int main()
23 {
24   search(1);
25 }

这样一来会发现有重复的这样的话我们只需要筛选一下,运用通数组标记。

 1 #include<iostream>
 2 
 3 using namespace std;
 4 int a[1000],to[1000];
 5 
 6 void search(int t)
 7 {
 8   if(t>3)
 9   {
10     for(int i=1;i<=3;i++)
11       cout<<a[i]<<" ";
12     cout<<endl;
13     return;
14   }
15   for(int i=1;i<=3;i++)
16   {
17     if(to[i]) continue;
18     to[i]=true;
19     a[t]=i;
20     search(t+1);
21     to[i]=false;    
22   }
23 }
24 
25 int main()
26 {
27   search(1);
28 }

全排列补充

原文:https://www.cnblogs.com/yeah123/p/10851845.html

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