#include<stdio.h>
void quicksort(int *,int ,int);
int partition(int *,int ,int);
int main()
{
int a[50],p,q,n,i;
printf("Enter total no of element in an array\n");
scanf("%d",&n);
printf("Enter %d element \n",n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("Before sorting\n");
for(i=1;i<=n;i++)
printf("%d\t",a[i]);
p=1;q=n;
quicksort(a,p,q);
printf("\nAfter sorting\n");
for(i=1;i<=n;i++)
printf("%d\t",a[i]);
}
void quicksort(int *a,int p,int r)
{
int m;
if(p<r)
{
m=partition(a,p,r);
quicksort(a,p,m-1);
quicksort(a,m+1,r);
}
}
int partition(int *a,int p,int r)
{
int x,t,i,j;
x=a[r];
i=p-1;
for(j=p;j<=r-1;j++)
{
if(a[j]<=x)
{
i=i+1;
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
t=a[i+1];
a[i+1]=a[r];
a[r]=t;
return (i+1);
}
0 Comments