Increasing order:
void mergesort(int a[],int min,int max)
{
int mid;
if(min<max)
{
mid=(min+max)/2;
mergesort(a,min,mid);
mergesort(a,mid+1,max);
merge(a,min,mid,max);
}
}
void merge(int a[],int min,int mid,int max)
{
int temp[20],i,j,k;
i=min;
j=mid+1;
k=min;
while(i<=mid &&j<=max)
{
if(a[i]<a[j])
{
temp[k++]=a[i++];
}
else
{
temp[k++]=a[j++];
}
}
while(i<=mid)
{
temp[k++]=a[i++];
}
while(j<=max)
{
temp[k++]=a[j++];
}
for(k=min;k<=max;k++)
a[k]=temp[k];
}
No comments:
Post a Comment