You are on page 1of 2

#include<iostream>

using namespace std;


void display();
void mergeSort(int*, int, int);
void mergeArray(int*, int, int, int);
int const n = 6;
int arr[n];

void main()
{

for (int i = 0; i < n; i++)


cin >> arr[i];
mergeSort(arr, 0, n - 1);
for (int j = 0; j < n; j++) {
cout << arr[j] << " ";
}
system("pause");
}

void mergeSort(int* arr, int startIndex, int endIndex)


{
int mid = (startIndex + endIndex) / 2;
if (startIndex < endIndex)
{
mergeSort(arr, startIndex, mid);
mergeSort(arr, mid + 1, endIndex);
mergeArray(arr, startIndex, endIndex, mid);

}
}

void mergeArray(int* arr, int startIndex, int endIndex, int mid)


{
int i, j, k, tempArray[n];
i = startIndex;
j = mid + 1;
k = startIndex;
while (i <= mid && j <= endIndex)
{
if (arr[i] < arr[j])
{
tempArray[k] = arr[i];
k++;
i++;
}
else
{
tempArray[k]
= arr[j];
k++;
j++;
}
}
while (i <= mid)
{
tempArray[k] = arr[i];
k++;
i++;
}
while (j <= endIndex)
{
tempArray[k] = arr[j];
k++;
j++;
}

for (i = startIndex; i < k; i++)


{
arr[i] = tempArray[i];
}

void display()
{
for (int i = 0; i < arr[i]; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}

You might also like