Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

merge(arr, low, mid, high){

i, j, k;
left = mid - low + 1; //including mid
right = high - mid;

leftArray[left], rightArray[right];

for(i = 0 ; i < left ; i++) { //includes mid!


leftArray[i] = arr[l + i];
}
for(j = 0 ; j < right ; j++) {
rightArray[j] = arr[mid + 1 + j); //doesn't include mid so mid + 1;
}

i = 0, j = 0, k = low;

while(i < left && j < right) {


if(leftArray[i] <= rightArray[j]) {
arr[k] = leftArray[i];
i++;
} else {
arr[k] = rightArray[j];
j++;
}
k++;
}

while(i < left) {


arr[k] = leftArray[i];
i++;
k++;
}

while(j < right) {


arr[k] = rightArray[j];
j++;
k++;
}
}

void mergeSort(arr, low, high)


{
if (low < high) {
int mid = low + (high - l) / 2;

mergeSort(arr, low, mid);


mergeSort(arr, mid + 1, high);

merge(arr, low, mid, high);


}
}

You might also like