Write a c++ program that can sort an array of ten integers using merge sort. Divide the array into three parts instead of two and recursively sort each third and merge them. Solution #include <iostream> using namespace std; #include <conio.h> void MERGE(int , int , int , int ); void 3_mergesort(int A[20], int k, int l) { if(k<l) { int one_third = (l-k)/3; int two_third = 2*(l-k)/3; // k < k+one_third < k+two_third < l 3_mergesort(A,k,k+one_third); 3_mergesort(A,k+one_third+1,k+two_third); 3_mergesort(A,k+two_third+1,l); MERGE(A,k,k+one_third,k+two_third); MERGE(A,k,k+two_third,l); } } void MERGE(int A[20], int p, int q, int r) { int i = p; int j = q+1; int lenght = r - p + 1; int k=0; int merged[20]; merged.assign (lenght,0); while((i<=q)&&(j<=r)) { if(A[i] <= A[j]) { merged[k]=A[i]; ++i; } else { merged[k]=A[j]; ++j; } k++; } if(j<=r) { while(j<=r) { merged[k]=A[j]; ++j; ++k; } } if(i<=q) { while(i<=q) { merged[k]=A[i]; ++i; ++k; } } for (i=0;i<lenght;++i) A[p+i]=merged[i]; } int main() { int a[20],i; cout<<\"enter the elements\ \"; for (i = 0; i < 5; i++) { cin>>a[i]; } 3_mergesort(a, 0, 4); cout<<\"sorted array\ \"; for (i = 0; i < 5; i++) { cout<<a[i]; } getch(); } .