Thread: recursive merge
View Single Post
  #1 (permalink)  
Old 03-29-2008, 01:02 PM
felixb felixb is offline
Newbie
 
Join Date: Mar 2008
Posts: 7
Rep Power: 0
felixb is on a distinguished road
Default recursive merge

Hello,

I wrote a merge function,
can you help me to write recursive version to my merge function?
(i dont know how to do it)

c++ Code:
  1. void merge(int* arr, int size)
  2. {
  3.    int* temp;
  4.    int* side1=arr;
  5.    int* side2=arr+size/2;
  6.    int i;
  7.  
  8.    temp=(int*)malloc(size*sizeof(int));
  9.    checkAlloc(temp);
  10.  
  11.    while((side1<arr+size/2)&&(side2<arr+size))
  12.    {
  13.          if(*side1<*side2)
  14.          {
  15.     *temp=*side1;
  16.     temp++;
  17.     side1++;
  18.          }
  19.          else
  20.          {
  21.     *temp=*side2;
  22.     temp++;
  23.     side2++;
  24.          }
  25.    }
  26.  
  27.    while(side1<arr+size/2)
  28.    {
  29.        *temp=*side1;
  30.         temp++;
  31.         side1++;
  32.    }
  33.    while(side2<arr+size)
  34.    {
  35.        *temp=*side2;
  36.         temp++;
  37.         side2++;
  38.    }
  39.    temp=temp-size;
  40.  
  41.    for(i=0;i<size;i++)
  42.   {
  43.       *(arr+i)=*(temp+i);
  44.   }
  45.   free(temp);
  46. }

Last edited by Jaan; 04-01-2008 at 01:06 AM. Reason: Please use tags when you're posting your code!
Reply With Quote

Sponsored Links