Write a C program generate permutations !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include<stdio.h> #define SIZE 3 // compiled on gcc int main( char *argv [] , int argc ) { char list[3] = { 'a' , 'b' , 'c' }; int i , j , k ; for( i = 0 ; i < SIZE ; i++ ) for( j = 0 ; j < SIZE ; j++ ) for( k = 0 ; k < SIZE ; k++ ) if( i != j && j != k && i != k ) printf("%c%c%c\n", list[i],list[j],list[k] ); return ( 0 ) ; } |
//Recursive Program
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <stdio.h> #define N 5 // compiled on gcc void permute( char list[] , int k , int m ) { int i; char temp; if( k == m ) { /* PRINT A FROM k to m! */ for( i = 0 ; i < N ; i++ ) { printf("%c",list[ i ] ); } printf("\n"); } else { for( i = k ; i < m ; i++ ) { /* swap(a[i],a[m-1]); */ temp = list[ i ] ; list[i] = list[ m - 1] ; list[ m - 1 ] = temp ; permute( list , k , m -1 ) ; /* swap(a[m-1],a[i]); */ temp = list[ m -1] ; list[ m - 1 ] = list[ i ]; list[ i ] = temp; } } } int main( char *argv[] , int argc ) { char list[5] = { 'a' , 'b' , 'c' , 'd' , 'e' }; permute( list , 0 , N ); return 0; } |
2,755 total views, 5 views today
2,755 total views, 5 views today