Quick sort program in C by codepiova programmer

 #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);
}

Post a Comment

0 Comments