Merge Sort
Merge Sort
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
using namespace std;
int mid = n / 2;
vector<int> left(arr.begin(), arr.begin() + mid);
vector<int> right(arr.begin() + mid, arr.end());
left = mergeSort(left);
right = mergeSort(right);
// Merge
vector<int> merged;
int i = 0, j = 0;
while (i < left.size() && j < right.size()) {
if (left[i] <= right[j])
merged.push_back(left[i++]);
else
merged.push_back(right[j++]);
}
while (i < left.size()) merged.push_back(left[i++]);
while (j < right.size()) merged.push_back(right[j++]);
return merged;
}
int main() {
vector<int> arr(10000);
for (int i = 0; i < 10000; i++) {
arr[i] = rand() % 100;
}
return 0;
}
Output:
Original array: [83 86 77 15 93 35 86 92 49 21 ...]
Sorted array: [0 0 0 0 0 0 0 0 0 0 ...]
Execution time: 0.013583 seconds