Monday, May 24, 2010

Using C++ what is the easiest way to write a recursive function to sort an array in ascending order?

I just googled for it and there's a recursive merge sort here.





void mergeSort(int numbers[], int temp[], int array_size)


{


m_sort(numbers, temp, 0, array_size - 1);


}








void m_sort(int numbers[], int temp[], int left, int right)


{


int mid;





if (right %26gt; left)


{


mid = (right + left) / 2;


m_sort(numbers, temp, left, mid);


m_sort(numbers, temp, mid+1, right);





merge(numbers, temp, left, mid+1, right);


}


}





void merge(int numbers[], int temp[], int left, int mid, int right)


{


int i, left_end, num_elements, tmp_pos;





left_end = mid - 1;


tmp_pos = left;


num_elements = right - left + 1;





while ((left %26lt;= left_end) %26amp;%26amp; (mid %26lt;= right))


{


if (numbers[left] %26lt;= numbers[mid])


{


temp[tmp_pos] = numbers[left];


tmp_pos = tmp_pos + 1;


left = left +1;


}


else


{


temp[tmp_pos] = numbers[mid];


tmp_pos = tmp_pos + 1;


mid = mid + 1;


}


}





while (left %26lt;= left_end)


{


temp[tmp_pos] = numbers[left];


left = left + 1;


tmp_pos = tmp_pos + 1;


}


while (mid %26lt;= right)


{


temp[tmp_pos] = numbers[mid];


mid = mid + 1;


tmp_pos = tmp_pos + 1;


}





for (i=0; i %26lt;= num_elements; i++)


{


numbers[right] = temp[right];


right = right - 1;


}


}

Using C++ what is the easiest way to write a recursive function to sort an array in ascending order?
1+1=2 Gitt it!!!???


No comments:

Post a Comment