Skip to content

Instantly share code, notes, and snippets.

@anshumanc007
Created June 9, 2018 06:40
Show Gist options
  • Save anshumanc007/df8513084edb1c12f277447653737632 to your computer and use it in GitHub Desktop.
Save anshumanc007/df8513084edb1c12f277447653737632 to your computer and use it in GitHub Desktop.
void merge (long long int A[],long long int L[],long long int R[],long long int ell,long long int err )
{
long long int i=0;
long long int j=0;
long long int k=0;
while(i<ell && j<err)
{
if(L[i]<=R[j])
{
A[k]=L[i];
k++;
i++;
}
else
{
A[k]=R[j];
j++;
k++;
}
}
while(i<ell)
{
A[k]=L[i];i++;k++;
}
while(j<err)
{
A[k]=R[j];
j++;
k++;
}
}
void maint(long long int A[],long long int n)
{ int i;
if(n>=2)
{
long long int mid=n/2;
long long int L[mid];
long long int R[n-mid];
for( i=0;i<mid;i++)
{
L[i]=A[i];
}
for(i=mid;i<n;i++)
{R[i-mid]=A[i];
}
maint( L,mid);
maint(R,(n-mid));
merge(A,L,R,mid,n-mid);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment