*
#include
#include
using namespace std;
void merging(int arr[],int startPoint, int midPoint, int endPoint)
{
int firstArrCnt,secArrCnt,i,temp[endPoint];
firstArrCnt = startPoint;
secArrCnt = midPoint + 1;
for(i = firstArrCnt; firstArrCnt<=midPoint && secArrCnt<=endPoint; i++)
{
if(arr[firstArrCnt] < arr[secArrCnt])
temp[i] = arr[firstArrCnt++];
else
temp[i] = arr[secArrCnt++];
}
while(firstArrCnt <= midPoint)
temp[i++] = arr[firstArrCnt++];
while(secArrCnt <= endPoint)
temp[i++] = arr[secArrCnt++];
for(i = startPoint; i<=endPoint; i++)
arr[i] = temp[i];
}
void sorting(int arr[],int startPoint, int endPoint)
{
int midPoint;
if(startPoint >= endPoint)
{
return;
}
else
{
midPoint = (startPoint+endPoint)/2;
sorting(arr,startPoint, midPoint);
sorting(arr,midPoint+1, endPoint);
merging(arr,startPoint, midPoint, endPoint);
}
}
int main()
{
int i, n;
printf("Enter number of elements:\n");
scanf("%d", &n);
int arr[n];
printf("Enter %d elements:\n",n);
for(i=1; i<=n; i++)
scanf("%d", &arr[i]);
sorting(arr,1, n);
printf("\nAfter sorting the Array:\n");
for(i = 1; i<=n; i++)
printf("%d ", arr[i]);
puts("");
return 0;
}
Quote: