MergeSort.cpp : This file contains the 'main' function. Program execution begins and ends there.
#include
#include
#include
#include
using namespace std;
vecto
int> merge(vecto
int>a
, int left, int middle, int right) {
int n1 = middle - left + 1;
int n2 = right - middle;
int L[n1], R[n2];
vecto
int> L;
vecto
int> R;
for (int i = 0; i < n1; i++) {
L[i] = a
[left + i];
XXXXXXXXXXL.push_back(a
[left + i]);
}
for (int i = 0; i < n2; i++) {
R[i] = a
[middle +1+ i];
XXXXXXXXXXR.push_back(a
[middle+1+i]);
}
vecto
int> result;
int i = 0;
int j = 0;
int k = left;
while (i < n1 && j < n2) {
XXXXXXXXXXif (L[i] <= R[j]) {
XXXXXXXXXXa
[k] = L[i];
XXXXXXXXXXi++;
}
XXXXXXXXXXelse {
XXXXXXXXXXa
[k] = R[j];
XXXXXXXXXXj++;
}
XXXXXXXXXXk++;
}
while (i < n1) {
XXXXXXXXXXa
[k] = L[i];
XXXXXXXXXXi++;
XXXXXXXXXXk++;
}
while (j < n2) {
XXXXXXXXXXa
[k] = R[j];
XXXXXXXXXXj++;
XXXXXXXXXXk++;
}
return a
;
}
vecto
int> mergeSort(vecto
int> a
, int left, int right) {
if (left >= right)
XXXXXXXXXXreturn a
;
int middlePoint = left + (right - left) / 2;
int middlePoint = a
.size() / 2;
mergeSort(a
, left, middlePoint);
mergeSort(a
, middlePoint + 1, right);
return (merge(a
, left, middlePoint, right));
}
int main()
{
string input;
string element;
vecto
int> numbers;
int a
1[] = { 12, 11, 13, 5, 6, 7 };
int a
_size = sizeof(a
1) / sizeof(a
1[0]);
cout
a
_size;
cout
"Enter numbers: \n";
getline(cin, input, '*');
stringstream ss(input);
while (getline(ss, element, ','))
{
XXXXXXXXXXnumbers.push_back(stoi(element));
}
for (int i = 0; i < numbers.size(); i++) {
XXXXXXXXXXcout
numbers[i];
}
vecto
int> result = mergeSort(numbers, 0, numbers.size() - 1);
cout
"\n";
for (int i = 0; i < result.size(); i++) {
XXXXXXXXXXcout
result[i]
" ";
}
}