renamed conflicting mergesort function

This commit is contained in:
Krishna Vedala 2020-04-07 18:33:49 -04:00
parent cee2468506
commit dc5d25690b
No known key found for this signature in database
GPG Key ID: BA19ACF8FC8792F7

View File

@ -1,91 +1,92 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h>
void swap (int *a,int *b)//To swap the variables// void swap(int *a, int *b) //To swap the variables//
{ {
int t; int t;
t= *a; t = *a;
*a=*b; *a = *b;
*b=t; *b = t;
} }
void merge(int a[],int l,int r,int n)//To merge // void merge(int a[], int l, int r, int n) //To merge //
{ int *b = (int*)malloc(n*sizeof(int)); {
int c=l; int *b = (int *)malloc(n * sizeof(int));
int p1,p2; int c = l;
p1 = l;p2=((l+r)/2)+1; int p1, p2;
while ((p1<((l+r)/2)+1) &&(p2<r+1)) p1 = l;
{ if(a[p1] <= a[p2]) p2 = ((l + r) / 2) + 1;
{ b[c++] = a[p1]; while ((p1 < ((l + r) / 2) + 1) && (p2 < r + 1))
p1++;
}
else
{b[c++] = a[p2];p2++;}
};
if (p2 == r+1)
{ {
while ((p1<((l+r)/2)+1)) if (a[p1] <= a[p2])
{ {
b[c++] = a[p1]; b[c++] = a[p1];
p1++; p1++;
}; }
else
{
b[c++] = a[p2];
p2++;
}
};
if (p2 == r + 1)
{
while ((p1 < ((l + r) / 2) + 1))
{
b[c++] = a[p1];
p1++;
};
} }
else else
{ {
while ((p2<r+1)) while ((p2 < r + 1))
{ {
b[c++] = a[p2]; b[c++] = a[p2];
p2++; p2++;
}; };
} }
for (c=l;c<r-l+1;c++) for (c = l; c < r - l + 1; c++)
a[c] = b[c]; a[c] = b[c];
} }
void mergesort(int a[],int n,int l,int r)
void merge_sort(int *a, int n, int l, int r)
{ {
if (r-l == 1 ) if (r - l == 1)
{
if (a[l] > a[r])
swap(&a[l], &a[r]);
}
else if (l == r)
{ {
if (a[l]>a[r])
swap(&a[l],&a[r]);
} }
else if(l==r)
{}
else else
{mergesort(a,n,l,(l+r)/2); {
mergesort(a,n,((l+r)/2)+1,r); merge_sort(a, n, l, (l + r) / 2);
merge(a,l,r,n); merge_sort(a, n, ((l + r) / 2) + 1, r);
merge(a, l, r, n);
} }
} }
int main(void) { //main function// int main(void)
int *a,n,i; { //main function//
scanf("%d",&n); int *a, n, i;
a = (int*)malloc(n*sizeof(int)); scanf("%d", &n);
for (i=0;i<n;i++) a = (int *)malloc(n * sizeof(int));
{ for (i = 0; i < n; i++)
{
scanf("%d",&a[i]);
scanf("%d", &a[i]);
}
merge_sort(a, n, 0, n - 1);
for (i = 0; i < n; i++)
{
printf(" %d", a[i]);
}
free(a);
return 0;
} }
mergesort(a,n,0,n-1);
for (i=0;i<n;i++)
{
printf(" %d",&a[i]);
}
return 0;
}