字典序输出全排列
来源:互联网 发布:牛肉休闲食品销售数据 编辑:程序博客网 时间:2024/06/10 05:58
#include<stdio.h>int n,sum=0,list[5]={5,4,3,2,1};void swap(int a,int b){int temp=list[a];list[a]=list[b];list[b]=temp;}void move(int a,int b){int temp=list[b];for(int i=b;i<a;i++)list[i]=list[i+1];list[a]=temp;}void moveback(int a,int b){int temp=list[a];for(int i=a;i>b;i--)list[i]=list[i-1];list[b]=temp;}void dfs(int n,int pos){if(pos<1){sum++;for(int i=n-1;i>=0;i--)printf("%d ",list[i]);printf("\n");return;}for(int i=pos;i>=0;i--){swap(pos,i);if(i<pos-1)move(pos-1,i);dfs(n,pos-1);if(i<pos-1)moveback(pos-1,i);swap(pos,i);}}int main(){scanf("%d",&n);dfs(n,n-1);printf("%d\n",sum);return 0;}
非递归
#include<stdio.h>void swap(int *a,int *b){int temp=*a;*a=*b;*b=temp;}void reverse(int a,int b,int lis[]){int temp;for(int i=a;i<=(a+b)/2;i++){temp=lis[i];lis[i]=lis[b-i+a];lis[b-i+a]=temp;}}int main(){int n;while(~scanf("%d",&n)){int i,j,lis[6]={1,2,3,4,5,6};for(int i=0;i<n;i++)printf("%d",lis[i]);printf("\n");i=n-2;while(i>=0){if(lis[i]<lis[i+1]){for(j=n-1;j>i;j--)if(lis[j]>lis[i]){swap(&lis[i],&lis[j]);break;}reverse(i+1,n-1,lis);for(j=0;j<n;j++)printf("%d",lis[j]);printf("\n");i=n-1;}--i;}}return 0;}
使用STL的next_permutation函数生成全排列
#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ char str[7]; while(scanf("%s",str)!=EOF){ int len=strlen(str); printf("%s\n",str); while(next_permutation(str,str+len)) printf("%s\n",str); printf("\n"); } return 0;}/************************************************************** Problem: 1120 Language: C++ Result: Accepted Time:340 ms Memory:1520 kb****************************************************************/
0 0
- 字典序输出全排列
- 全排列 字典序排列
- 字典序全排列
- 字典序全排列
- 字典序全排列
- 字典序全排列
- 全排列-字典序
- 全排列-字典序
- 字典序全排列
- 字典序全排列
- 字典序全排列
- 字典序全排列
- 按字典序输出数组内元素的全排列
- 字典序全排列输出下一个的java实现
- 按字典序输出数组的全排列
- 全排列的实现方法+字典序输出
- DFS专练3 全排列字典序输出问题
- 全排列的递归算法(包括字典序输出和非字典序输出)
- 黑马程序员——C语言基础-进制内存分析及printf、scanf
- 安卓学习笔记之Activity的定义和生命周期篇
- Fragment跳转时传递参数及结果回传的方法
- title滚动
- Linux命令学习:make命令教程
- 字典序输出全排列
- chrome 开发者工具
- 北京工商大学选择迪普科技完成数据中心安全升级改造
- Object c中的alloc和init问题
- cocos2d-x-3.4-025-仿霍比特人3五军之战片尾动画
- 学习PHP过程记录(8)
- SSH2注册登陆
- UML类图关系大全
- 正则表达式