voidmergeSort(int* a, int low, int high) { if (low < high) { int middle = (low + high) / 2; mergeSort(a, low, middle); mergeSort(a, middle + 1, high); merge(a, low, middle, high); } }
voidmerge(int* a, int low, int middle, int high) { int* helper = new int[high + 1 - low]; for (int index = 0; index < high + 1 - low; index++) { helper[index] = a[index + low]; } int helperLeft = 0; int helperRight = middle + 1 - low; int current = low;