Posts

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;          pr...

floyd's

#include<stdio.h> #include<stdlib.h> void floyds(int D[10][10],int n); int min(int a,int b){     if(a<b)         return a;     else         return b; } int main(){     int i,j,n,D[10][10];     printf("\nEnter no. of nodes: ");     scanf("%d",&n);     printf("\nRead the weighted matrix\n");     for(i=1;i<=n;i++)         for(j=1;j<=n;j++)             scanf("%d",&D[i][j]);     floyds(D,n);     printf("\n The all pairs shorted path is\n");     for(i=1;i<=n;i++){         for(j=1;j<=n;j++){             printf("%d\t",D[i][j]);         }         printf("\n");     }     return 0; } void floyds(int D[10][10],int n){     int i,j,k;     for(i=1;i<...

sum_OF_SUBSET

  #include <stdio.h> #include <stdbool.h> #define max_size 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_size];   int subset [max_size];   int n,sum;   printf ( "Enter the no. of elements in set:" );   scanf ( " %d " , & n);   printf ( "Enter the elements of set: \n " );   for ( int i = 0 ;i < n;i ++ ){     scanf ( " %d " , & set [i]...

nqueens

  #include <stdio.h> #include <math.h> #include <stdlib.h> int board [ 20 ],count; void queen ( int row , int n ); int main () {   int n,i,j;   printf ( "N queen" );   printf ( " \n Enter the no. of queens:" );   scanf ( " %d " , & n);   queen ( 1 ,n); } void print ( int n ){   int i,j;   printf ( " \n 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     ...

dijsktra

#include <stdio.h> #include <stdbool.h> #include <limits.h> #define max_vert 10 #define INF INT_MAX int minDistance ( int dist [] , bool sptSet [] , int V ) {     int min = INF, min_index;     for ( int v = 0 ; v < V; v ++ ) {         if ( ! sptSet [v] && dist [v] <= min) {             min = dist [v];             min_index = v;         }     }     return min_index; } void printSolution ( int dist [] , int V ) {     printf ( "Vertex \t\t Distance from Source \n " );     for ( int i = 0 ; i < V; i ++ ) {         printf ( " %d \t\t %d \n " , i, dist [i]);     } } void dijkstra ( int graph [max_vert][max_vert], int src , int V ) {     int dist [max_vert];     bool sptSet [max_vert];     for ( int i = 0...

knapsack_greedy

  #include <stdio.h> int max ( int a , int b ) {     return (a > b) ? a : b; } int knapsack ( int W , int wt [] , int val [] , int n ) {     int i, w;     int k [n + 1 ][W + 1 ];         for (i = 0 ; i <= n; i ++ ) {         for (w = 0 ; w <= W; w ++ ) {             if (i == 0 || w == 0 )                 k [i][w] = 0 ;             else if ( wt [i - 1 ] <= w)                 k [i][w] = max ( val [i - 1 ] + k [i - 1 ][w - wt [i - 1 ]], k [i - 1 ][w]);             else                 k [i][w] = k [i - 1 ][w];         }     }     return k [n][W]; } int main () {     int val [ 100 ], wt [ 100 ];   ...

knapsack_dynamic

  #include <stdio.h> int max ( int a , int b ) {     return (a > b) ? a : b; } int knapsack ( int W , int wt [] , int val [] , int n ) {     int i, w;     int k [n + 1 ][W + 1 ];         for (i = 0 ; i <= n; i ++ ) {         for (w = 0 ; w <= W; w ++ ) {             if (i == 0 || w == 0 )                 k [i][w] = 0 ;             else if ( wt [i - 1 ] <= w)                 k [i][w] = max ( val [i - 1 ] + k [i - 1 ][w - wt [i - 1 ]], k [i - 1 ][w]);             else                 k [i][w] = k [i - 1 ][w];         }     }     return k [n][W]; } int main () {     int val [ 100 ], wt [ 100 ];   ...