Sei sulla pagina 1di 4

/*PROGRAM TO SORT THE ARRAY ELEMENTS IN AN ASCENDING ORDER USING MERGE SORT TECHNIQUE*/

#include<stdio.h>
void mergesort(int [],int,int);
void merge(int [],int,int,int);
int main()
{
int arr[20],i,n;
printf("Enter the number of eleemnts u want 2 store in the array:\t");
scanf("%d",&n);
printf("\nEnter the array elements:\n");
for(i=0;i<n;i++)
{
printf("\narr[%d]=",i);
scanf("%d",&arr[i]);
}
printf("\nBefore sorting the array elements are:\n");
for(i=0;i<n;i++)
{
printf("%d\t",arr[i]);
}
printf("\n\nAfter sorting the array elements are:\n");
mergesort(arr,0,n-1);
for(i=0;i<n;i++)
{
printf("%d\t",arr[i]);
}

return 0;
}
void mergesort(int a[],int p,int r)
{
int q;
if(p<r)
{
q=(p+r)/2;
mergesort(a,p,q);
mergesort(a,q+1,r);
merge(a,p,q,r);
}
}//end of mergesort()

void merge(int a[],int p,int q,int r)


{
int temp[20],l1,r1,i;
l1=p;
r1=q+1;
i=p;
while((l1<=q)&&(r1<=r))
{
if(a[l1]<a[r1])
{
temp[i]=a[l1];
l1++;
i++;
}
else
{
temp[i]=a[r1];
r1++;
i++;
}
}//end of while()
while(l1<=q)
{
temp[i]=a[l1];
l1++;
i++;
}//end of while()
while(r1<=r)
{
temp[i]=a[r1];
r1++;
i++;
}//end of while()
for(i=p;i<=r;i++)
a[i]=temp[i];
}//end of merge()
/*PROGRAM TO SORT THE ARRAY ELEMENTS IN AN ASCENDING ORDER USING QUICK SORT TECHNIQUE*/
#include<stdio.h>
void quicksort(int [],int,int);
int partition(int [],int,int);
int main()
{
int arr[20],i,n;
printf("Enter the number of eleemnts u want 2 store in the array:\t");
scanf("%d",&n);
printf("\nEnter the array elements:\n");
for(i=0;i<n;i++)
{
printf("\narr[%d]=",i);
scanf("%d",&arr[i]);
}
printf("\nBefore sorting the array elements are:\n");
for(i=0;i<n;i++)
{
printf("%d\t",arr[i]);
}
printf("\n\nAfter sorting the array elements are:\n");
quicksort(arr,0,n-1);
for(i=0;i<n;i++)
{
printf("%d\t",arr[i]);
}

return 0;
}
void quicksort(int a[],int p,int r)
{
int q;
if(p<r)
{
q=partition(a,p,r);
quicksort(a,p,q-1);
quicksort(a,q+1,r);
}
}//end of quicksort()

int partition(int a[],int p,int r)


{
int i,j,x,temp;
x=a[r];
i=p-1;
for(j=p;j<=r-1;j++)
{
if(a[j]<=x)
{
i=i+1;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}//end of if()
}//end of for()
temp=a[i+1];
a[i+1]=a[r];
a[r]=temp;

return (i+1);
}//end of partition()

Potrebbero piacerti anche