#include<stdio.h>

void quick_sort(int *Y, int low, int high)
{
	int pi,L,H,temp;
	pi=Y[low];
	L=low;
	H=high;
	if(low<high)
	{
		while(L<=H)
		{
			while(Y[L]<=pi)
			L++;
			while(Y[H]>pi)
			H--;
			if(L<H)
			{
				temp=Y[L];
				Y[L]=Y[H];
				Y[H]=temp;
			}
		}
		Y[low]=Y[H];
		Y[H]=pi;
		quick_sort(Y,low,H-1);
		quick_sort(Y,H+1,high);
	}
}

void print_array(int *Y,int n)
{
	int i;
	printf("\n\nArray of %d elements:",n);
	printf("\n\n%d",Y[0]);
	for(i=1;i<n;i++)
		printf(", %d",Y[i]);
}

void input_array(int *Y,int n)
{
	int i;
	printf("\n\nEnter %d elements:",n);
	for(i=0;i<n;i++)
		scanf("%d",&Y[i]);
}

void main()
{
	int X[100],n;
	printf("Enter number of elements:");
	scanf("%d",&n);
	if((n>0)&&(n<101))
	{
		input_array(X,n);
		printf("\nBefore Sorting:\n");
		print_array(X,n);
		quick_sort(X,0,n-1);
		printf("\nAfter Quick Sorting:\n");
		print_array(X,n);
	}
	else
	{
		printf("\nInvalid Input");
	}
}