Saturday, August 20, 2011

Merge two arrays.

//Merge two arrays.
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
void create(int **t,int e);
void display(int *t,int e);
void sort(int *t,int e);
int merge(int **c,int *a,int *b,int m,int n);
main()
{
 int *a,*b,*c,m,n,p;
 printf("\n Enter the number of elements in 1st  matrix: ");
 scanf("%d",&m);
 create(&a,m);
 printf("\n Enter the number of elements in  2nd matrix: ");
 scanf("%d",&n);
 create(&b,n);
  printf("\n1st matrix\n");
  display(a,m);
  printf("\n2nd matrix\n");
  display(b,n);
  sort(a,m);
  sort(b,n);
  p=merge(&c,a,b,m,n);
  printf("\n1st matrix\n");
  display(a,m);
  printf("\n2nd matrix\n");
  display(b,n);
  printf("\n merged matrix\n");
  display(c,p);
 getch();
}
void create(int **te,int e)
{
     int *t,i;
     t=(int*)malloc(e*sizeof(int));
     printf("\nEnter the elements of matrix\n");
     for(i=0;i<e;i++)
         scanf("%d",&t[i]);
     *te=t;
}
void display(int *t,int e)
{
     int i;
     for(i=0;i<e;i++)
         printf("%d ",t[i]);
   
}
void sort(int *t,int e)
{
int i,j,temp;
 for(i=0;i<e-1;i++)
  {
    for(j=0;j<e-1-i;j++)
    {
      if(t[j]>t[j+1])
      {
       temp=t[j];
       t[j]=t[j+1];
       t[j+1]=temp;
      }
    }
  }
}

int merge(int **c,int *a,int *b,int m,int n)
{
    int *t,l,i=0,j=0,k=0;
    l=m+n;
    t=(int*)malloc(l*sizeof(int));
    while(i<m&&j<n)
    {
                   if(a[i]<b[j])
                   {
                       t[k]=a[i];
                       i++;
                   }
                   else
                   {
                       t[k]=b[j];
                       j++;
                   }
                       k++;
    }
    if(i==m)
    {
       while(j<n)
       {
              t[k]=b[j];
              j++;    
              k++;
       }
    }
    else if(j==n)
    {
        while(i<m)
        {
             t[k]=a[i];
             k++;
             i++;
        }
    }  
   *c=t;
   return l;
}

Previous Next Home
0 Comments
Comments

Leave a Comment

:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( =))

Twitter Delicious Facebook Favorites More