vifl@hou2f.UUCP (M.MEKETON) (07/23/84)
Here is an implementation of the permutation algorithm in C, without using recursion. It takes an integer, n, on the command line and creates all the permutations of {1,2,..,n}. Translations to PASCAL, FORTRAN, etc., are straigtforward. #define MAX_N 10 main(argc,argv) int argc; char *argv[]; { int N, x[MAX_N+2], i, j, y[MAX_N+1]; sscanf(argv[1],"%d",&N); for (i=1;i<=N;x[i++]=1); while (x[N+1] < 1) { for (i=1;i<=N;y[i++]=i); for (i=N;i>=2;i--) { printf("%d ",y[x[i]]); for (j=x[i];j<N;j++) y[j] =y[j+1]; } printf("%d\n",y[1]); i=1; x[1]++; while (x[i] > i) {x[i] = 1; x[++i]++;} } } Marc S. Meketon ATT-BL Holmdel, NJ