Ad

Tuesday, July 10, 2007

Merging One Dimensional Arrays

Merging of two arrays means to form one big array from two small arrays, which has element from both the arrays linearly.

Ex. if we have the following two arrays:

array1 [5] = {1,2,3,4,5}

array2 [5] = {6,7,8,9,10}

and we merge these two arrays to form an array merge_array, then it would have these elements:

merge_array [5] ={1,2,3,4,5,6,7,8,9,10}

So, from this example we understand that the array which will hold the merged elements should have a dimension equal to the sum of the dimensions of the two discrete arrays.

It is no big deal to merge two arrays, we just need to sum up the dimension of the arrays, and then allocate an array having that dimension.

Below is the example program that illustrates this.

Please go through the program to understand every bit of it. It is accompanied with enough comments to make everything clear. While two arrays has been merged here, you can easily modify it to merge as many arrays as you wish.

  // -- Array Merging --
  // -- Program --
  // -------------------
  // Example program to illustrate
  // the merging of arrays
  #include<iostream.h>
  // process.h is needed for
  // the exit function
  #include<process.h>

  void main(void)
  {
   int i,j;

   // declare pointers for the needed
   // arrays
   int *array1,*array2;
   int *merge_array;

   // variables for the sizes of the arrays
   // given by the user
   int size_array1,size_array2,size_array3;

   // input the number of elements
   // required, by the user
   cout<<"enter no. of elements for array1:";
   cin>>size_array1;
   cout<<"enter no. of elements for array2:";
   cin>>size_array2;

   // calculate the no. of elements
   // required for the merge_array
   size_array3=size_array1+size_array2;

   // allocate the required arrays
   array1=new int[size_array1];
   array2=new int[size_array2];
   merge_array=new int[size_array3];

   // terminate if there is a problem in
   // memory allocation of the arrays
   if(array1==NULL || array2==NULL || merge_array==NULL)
     exit(1);

   // input the array elements
   cout<<"\nFirst Array:\n";
   for(i=0;i<size_array1;i++)
   {
    cout<<"element "<<i+1<<":";
    cin>>array1[i];
   }

   cout<<"\nSecond Array:\n";
   for(i=0;i<size_array2;i++)
   {
    cout<<"element "<<i+1<<":";
    cin>>array2[i];
   }

   // merging is being done here
   for(i=0;i<size_array1;i++)
     merge_array[i]=array1[i];
   for(j=0;j<size_array2;j++)
     merge_array[i+j]=array2[j];
   // till here

   for(i=0;i<size_array3;i++)
   {
    cout<<"\n";
    cout<<"element "<<i+1<<":";
    cout<<merge_array[i];
   }

   cout<<endl;

   // free-up the memory
   delete[] array1;
   delete[] array2;
   delete[] merge_array;
  }

Good-Bye!

Related Articles:

3 comments:

  1. This isn't Merging....This is Simply Appending two Arrays...

    Merging Is something far different..

    ReplyDelete
  2. i want to more programmes of one dimantional array

    ReplyDelete
  3. Anonymous10:05 PM

    thanks, you gave me an idea about on how to create my own merging of array.. =)

    ReplyDelete

You are free to comment anything, although you can comment as 'Anonymous' it is strongly recommended that you supply your name. Thank You.

Please don't use abusive language.