全排列补充
Posted yeah123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全排列补充相关的知识,希望对你有一定的参考价值。
上回说到全排列,这里进行补充。
运用搜索算法,进行全排列。
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 }
以上是关于全排列补充的主要内容,如果未能解决你的问题,请参考以下文章