#include<stdio.h>

void quick(int a[],int low,int high);
int partition(int a[],int low,int high);

int main()
{
    int a[100],n,i,low,high;
    printf("Enter the size of the array: ");
    scanf("%d",&n);
    printf("Enter the elements: ");
    for(i=0; i<n; i++)
    {
        scanf("%d",&a[i]);
    }
    
    low=0;
    high=n-1;
   
    quick(a,low,high);
    printf("The sorted array is:\n");
    for(i=0; i<n; i++)
    {
        printf("%d\n",a[i]);
    }
    return 0;
}


void quick(int a[],int low,int high)
{
    int j;
    if(low<high)
    {
        j=partition(a,low,high);
        quick(a,low,j-1);
        quick(a,j+1,high);
    }
}

int partition(int a[],int low,int high)
{
    int key,i,j,t;
    key = a[low];
    i=low+1;
    j=high;
    do
    {
        while(i<=high && key>a[i])
        {
            i++;
        }
        while(j>=low && key<a[j])
        {
            j--;
        }
        if(i<j)
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    } while(i<=j);
    
    t=a[low];
    a[low] = a[j];
    a[j]=t;
    
    return j;
}
     
           
Note: Need to be arranged in compiler after copied
   

 OutPut:

Enter the size of the array: 5 Enter the elements: 9 4 3 0 5 The sorted array is: 0 3 4 5 9