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

全排列补充

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

标签:重复   span   style   sea   names   运用   oid   标记   main   

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

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

 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 }

全排列补充

标签:重复   span   style   sea   names   运用   oid   标记   main   

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

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