I'm new in C, and learning recursive algorithms.
I'll like to assign an ID to each time the execution goes into the IF statement, to retrieved it, and print it as a new execution ID, but I don't know how to achieve it.
int recursion = 0;
void merge_sort_recursion(int arr[], int left, int right)
{
if (left < right)
{
int mid = left + (right - left) / 2;
recursion++;
printf("[%d] NEW RECURSION ID\n", recursion);
printf(" variables:\tleft: %d mid: %d right: %d\n", left, mid, right);
printf("[%d] recursive LEFT \t\n", recursion);
merge_sort_recursion(arr, left, mid);
printf("[%d] recursive RIGHT \t\n", recursion);
merge_sort_recursion(arr, mid + 1, right);
printf("[%d] recursive MERGE \t\n", recursion);
merge_sorted_arrays(arr, left, mid, right);
}
}
So far, all in print is this:
[1] NEW RECURSION ID
[1] recursive LEFT
[2] NEW RECURSION ID
[2] recursive LEFT
[2] recursive RIGHT
[2] recursive MERGE
[2] recursive RIGHT
[3] NEW RECURSION ID
[3] recursive LEFT
[3] recursive RIGHT
[3] recursive MERGE
[3] recursive MERGE
But, I'm looking for something like this:
[1] NEW RECURSION ID
[1] recursive LEFT
[2] NEW RECURSION ID
[2] recursive LEFT
[2] recursive RIGHT
[2] recursive MERGE
[1] recursive RIGHT
[3] NEW RECURSION ID
[3] recursive LEFT
[3] recursive RIGHT
[3] recursive MERGE
[1] recursive MERGE
Thank you,