BALANCED merge sort
C / C++ / MFC
1
Posts
1
Posters
0
Views
1
Watching
-
What does that mean, and what is the difference between just merge sort? Here is the code I use for just merge sort. How to make it BALANCED.
void Merge(int arr[], int low, int high, int mid)
{
int i, j, k, c[50];i = low; j = mid + 1; k = low; while((i <= mid) && (j <= high)) { if(arr\[i\] < arr\[j\]) { c\[k\] = arr\[i\]; k++; i++; } else { c\[k\] = arr\[j\]; k++; j++; } } while(i <= mid) { c\[k\] = arr\[i\]; k++; i++; } while(j <= high) { c\[k\] = arr\[j\]; k++; j++; } for(i = low; i < k; i++) { arr\[i\] = c\[i\]; } UpdateData(arr, high + 1);
}
void MergeSort(int arr[], int low, int high)
{
int mid;if(low < high) { mid = (low + high) / 2; MergeSort(arr, low, mid); MergeSort(arr, mid + 1, high); Merge(arr, low, high, mid); SwapsCount++; }
}