算法与数据结构之数组元素的全排列
数组元素的全排列(两种排法)
//两种方式的模板:
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;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
