算法入门竞赛经典7.2枚举排列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法入门竞赛经典7.2枚举排列相关的知识,希望对你有一定的参考价值。
7.2.1 生成1~n的排列
#include<stdio.h> int num[20],n; void Print(int n,int *a,int cur) { int i,j,flag; if(cur == n+1)//递归边界 { for( i = 1; i < cur; i ++) printf("%d ",a[i]); printf("\n"); } else { for( i = 1; i <= n; i ++) { flag = 1; for( j = 1; j < cur; j ++) if(a[j] == i)//如果i已经在a[1..cur-1]出现过,则舍弃 flag = 0; if(flag) { a[j] = i; Print(n,a,cur+1);//递归调用 } } } } int main() { scanf("%d",&n); Print(n,num,1); return 0; }
以上是关于算法入门竞赛经典7.2枚举排列的主要内容,如果未能解决你的问题,请参考以下文章