算法与数据结构之数组元素的全排列

数组元素的全排列(两种排法)

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

//具体实现代码如下

#include
#include
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;} 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部