Merge Sort
Merge Sort
CODE:
#include <iostream>
#include <vector>
std::vector<int> leftArray(n1);
std::vector<int> rightArray(n2);
int i = 0, j = 0, k = left;
arr[k] = leftArray[i];
++i;
} else {
arr[k] = rightArray[j];
++j;
++k;
arr[k] = leftArray[i];
++i;
++k;
arr[k] = rightArray[j];
++j;
++k;
int main() {
int n;
std::cin >> n;
std::vector<int> arr(n);
std::cout << "Enter the elements:\n";
mergeSort(arr, 0, n - 1);
return 0;
PSEUDOCODE:::::
RETURN
// Divide
arr[k] = leftArray[i]
i += 1
ELSE:
arr[k] = rightArray[j]
j += 1
k += 1
arr[k] = leftArray[i]
i += 1
k += 1
arr[k] = rightArray[j]
j += 1
k += 1
1. Divide
2. Conquer
Recursively apply Merge Sort to the left half and the right half.
3. Combine