配列要素のアルゴリズムとデータ構造の完全配列

配列要素の完全な配列(2つのスタイル)

//两种方式的模板:
do{
       //输出函数
   }while(next_premutation());//默认从小到大排

do{
      //输出函数
   }while(perv_premutation());//默认从大到小排序

//特定のコードは以下の通りです

#include<bits/stdc++.h>
#include<algorithm>
using namespace std;
int main()
{
	int n;
	cin>>n;
	vector<int>p;
	vector<int>p1;
	vector<int>::iterator it;
	for(int i=0;i<n;i++)
	{
		p.push_back(rand()%10000+1);
	}
	cout<<"原数列为"<<endl;
	sort(p.begin(),p.end());
	for(it=p.begin();it!=p.end();++it)  cout<<*it<<" ";
	cout<<endl<<endl;
	cout<<"升序下的全排列为"<<endl;
	do
	{ 
		for(it=p.begin();it!=p.end();++it)  cout<<*it<<" ";
	    cout<<endl;
	}while(next_permutation(p.begin(),p.end()));
	cout<<endl;
	cout<<"降序下的全排列为"<<endl;
	for(it=p.end();it!=p.begin();)  p1.push_back(*(--it));  
	do
	{ 
		for(it=p1.begin();it!=p1.end();++it)  cout<<*it<<" ";
	    cout<<endl;
	}while(prev_permutation(p1.begin(),p1.end()));
	return 0;
 } 
リリース9件のオリジナルの記事 ウォンの賞賛0 ビュー100

おすすめ

転載: blog.csdn.net/weixin_44586132/article/details/103570167