Great Deal! Get Instant $10 FREE in Account on First Order + 10% Cashback on Every Order Order Now

// MergeSort.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include #include #include #include using namespace std; vector merge(vector arr, int left, int...

1 answer below »

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]
" ";
}
}
Answered Same Day Apr 18, 2021

Solution

Shashi Kant answered on Apr 18 2021
154 Votes
Merge/merge.cpp
#include #include #include #include using namespace std;
void merge(vecto
int> &a
, int l, int m, int r)
{
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
for (int i = 0; i < n1; i++)
L[i] = a
[l + i];
for (int j = 0; j < n2; j++)
R[j] = a
[m + 1 + j];
int i = 0;
int j = 0;
int k = l;
while (i < n1 && j < n2) {
if (L[i] >= R[j]) {
a
[k] = L[i];
...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here