字典序全排列
2010-11-06 20:03
183 查看
//字典序全排列.cpp #include<iostream> #include<string> using namespace std; #define M 100 int count; void prin(int *a,int m) { int i; cout<<count++<<": "; for(i=0;i<m-1;i++) cout<<a[i]<<" "; cout<<a[m-1]<<endl; } void genperm(int *a,int n,int &index) { int i,j,k,t,tmp; if(a[index]==n-index) index++; prin(a,n); for(j=n-2;j>=0;j--) if(a[j]<a[j+1]) break; for(k=n-1;k>=0;k--) if(a[k]>a[j]) break; tmp=a[j],a[j]=a[k],a[k]=tmp; for(i=j+1,t=n-1;i<=t;i++,j--) tmp=a[i],a[i]=a[t],a[t]=tmp; } void genallperm(int *a,int n) { int index; for(index=0;index<n;index++) a[index]=index+1; index=0; while(index<n-1) genperm(a,n,index); } int main() { int n,t,cnt=0,a[M]; while(cin>>n) { count=1; if(n==0) break; cout<<"Case "<<++cnt<<" :n= "<<n<<endl; genallperm(a,n); cout<<endl; } return 0; }
相关文章推荐
- 字典序全排列java实现
- 生成字典序全排列
- 字典序全排列递归总结:值传递与引用传递
- 字典序全排列简单研究
- 递归实现全排列(按字典序)
- 按字典序输出数组的全排列
- 剑指offer之字符串字典序全排列
- 字典序全排列
- 字典序全排列实现
- 全排列 未按字典序
- 输出n的全排列的字典序编号为k的全排列
- 字符串的全排列_字典序排列
- 字典序全排列算法
- C - Orders 字典序全排列
- 按字典序输出数组内元素的全排列
- 全排列(递归和字典序)
- POJ 1833 排列(字典序全排列、next_permutation()、copy+流迭代器)
- 全排列-字典序
- hdu 1027 字典序全排列
- 字典序序号与全排列的关系【全排列与序号换算方法】