Posts

queens

  #include <stdio.h> #include <stdlib.h> #include <math.h> int board [ 20 ],count; void queen ( int row , int n ); int main (){   int n;   printf ( "Enter the no. of queen: " );   scanf ( " %d " , & n);   queen ( 1 ,n);   return 0 ; } void print ( int n ){   int i,j;   printf ( "Solution: %d \n " , ++ count);   for (i = 1 ;i <= n; ++ i){     printf ( " \t %d " ,i);   }   for (i = 1 ;i <= n;i ++ ){     printf ( " \n\n %d " ,i);     for (j = 1 ;j <= n; ++ j){       if ( board [i] == j)         printf ( " \t Q" );       else         printf ( " \t -" );     }   } } int place ( int row , int column ){   int i;   for (i = 1 ;i <= row - 1 ;i ++ ){     if ( board [i] == column)       return 0 ;     else       if ( abs (...

sum_subset

  #include <stdio.h> #include <stdbool.h> #define max 100 void subsetSum ( int set [] , int subset [] , int n , int subsize , int total , int nodecount , int sum ){   if (total == sum){     printf ( "Subset found:{" );     for ( int i = 0 ;i < subsize;i ++ ){       printf ( " %d " , subset [i]);     }     printf ( "} \n " );     return ;   }   else {     for ( int i = nodecount;i < n;i ++ ){       subset [subsize] = set [i];       subsetSum (set,subset,n,subsize + 1 ,total + set [i],i + 1 ,sum);     }   } } int main (){   int set [max];   int subset [max];   int n,sum;   printf ( "Enter the no. of elements in set:" );   scanf ( " %d " , & n);   printf ( "Enter the elements: \n " );   for ( int i = 0 ;i < n;i ++ ){     scanf ( " %d " , & set [i]);   } ...

warshal

  #include <stdio.h> #include <math.h> int max ( int , int ); void warshal ( int p [ 10 ][ 10 ], int n ) {   int i, j, k;         for (k = 1 ; k <= n; k ++ )             for (i = 1 ; i <= n; i ++ )                 for (j = 1 ; j <= n; j ++ )                     p [i][j] = max ( p [i][j], p [i][k] && p [k][j]);  } int max ( int a , int b ) {         if (a > b)             return (a);         else             return (b); } void main () {         int p [ 10 ][ 10 ] = { 0 }, n, e, u, v, i, j;         printf ( " \n Enter the number of vertices:" );         scanf ( " %d " , & n);         printf ( "...

floyds

  #include <stdio.h> #include <stdlib.h> int min ( int a , int b ); void floyds ( int p [ 10 ][ 10 ], int n ){ int i, j, k;         for (k = 1 ; k <= n; k ++ )             for (i = 1 ; i <= n; i ++ )                 for (j = 1 ; j <= n; j ++ )                     p [i][j] = min ( p [i][j], p [i][k] + p [k][j]); } int min ( int a , int b ){     if (a < b)         return a;     else         return b; } int main (){     int p [ 10 ][ 10 ],w,n,e,u,v,i,j;     printf ( " \n Enter no. of vertices: " );     scanf ( " %d " , & n);     printf ( " \n Enter the no. of edges:" );     scanf ( " %d " , & e);       for (i = 1 ;i <= n;i ++ )         for (j = 1...

prims

    #include <stdio.h> #include <limits.h> #define V_MAX 100 int minKey ( int key [] , int mstSet [] , int V ) {     int min = INT_MAX, min_index;     for ( int v = 0 ; v < V; v ++ )         if ( mstSet [v] == 0 && key [v] < min)             min = key [v], min_index = v;     return min_index; } void printMST ( int parent [] , int V , int graph [V_MAX][V_MAX]) {     printf ( "Edge Weight \n " );     for ( int i = 1 ; i < V; i ++ )         printf ( " %d - %d %d \n " , parent [i], i, graph [i][ parent [i]]); } void primMST ( int graph [] [V_MAX], int V ) {     int parent [V_MAX];     int key [V_MAX];     int mstSet [V_MAX];     for ( int i = 0 ; i < V; i ++ ) {         key [i] = INT_MAX;         mstSet [i] = ...

kruskal

  #include <stdio.h>   #define I 32767  // Infinity #define V 7  // # of vertices in Graph #define E 9  // # of edges in Graph void PrintMCST ( int T [] [V - 1 ], int A [] [E]){     printf ( "The MCST edges is: \n " );     for ( int i = 0 ; i < V - 1 ; i ++ ){         printf ( "[ %d ]-------[ %d ] \n " , T [ 0 ][i], T [ 1 ][i]);     } }   // Set operations: Union and Find void Union ( int u , int v , int s [] ){     if ( s [u] < s [v]){         s [u] += s [v];         s [v] = u;     } else {         s [v] += s [u];         s [u] = v;     } }   int Find ( int u , int s [] ){     int x = u;     int v = 0 ;       while ( s [x] > 0 ){         x = s [x];     }       while (...

merge_sort

  #include <stdio.h> #include <stdlib.h> #include <time.h> void merge ( int a [] , int l , int mid , int h ){   int i,j,k;   int b [h + 1 ];   i = l,j = mid + 1 ,k = l;   while (i <= mid && j <= h){     if ( a [i] < a [j]){       b [k ++ ] = a [i ++ ];     }     else       b [k ++ ] = a [j ++ ];   }   for (;i <= mid;i ++ ){     b [k ++ ] = a [i];   }   for (;j <= mid;j ++ ){     b [k ++ ] = b [i];   }   for (i = l;i <= h;i ++ ){     a [i] = b [i];   } } void mergeSort ( int a [] , int l , int h ){   int mid;   if (l < h){     mid = (l + h) / 2 ;     mergeSort (a,l,mid);     mergeSort (a,mid + 1 ,h);     merge (a,l,mid,h);   } } int main (){   clock_t start_time = clock ();   int n;   printf ( "Enter the no...