#include < stdio.h >

void quickSort(int [], int, int);
void Print(int [], int);

int main()
{
 int i , n ;
 int A[50];
 printf("How many Elements (Not more than 50 !!): ");
 scanf("%d",&n);
 printf("Enter %d Numbers: \n",n);
 for(i=0 ; i < n ; i++)
 {
  scanf("%d",&A[i]);
 }
 quickSort(A,0,n-1);
 Print(A,n);
 return 0;
}


void Print(int A[] , int N)
{
 int i;
 printf("After Sorting The Elements Are: \n");
 for(i=0 ; i < N ; i++)
 {
  printf("%4d",A[i]);
 }
 printf("\n");
}


void quickSort(int A[] , int left , int right)
{
 int pivot , l_hold , r_hold;
 l_hold = left;
 r_hold = right;
 pivot = A[left];
 while(left < right)
 {
  while((A[right] >= pivot) && (left < right))
   right--;
  if(left != right)
  {
   A[left] = A[right];
   left++;
  }
  while((A[left] <= pivot) && (left < right))
   left++;
  if(left != right)
  {
   A[right] = A[left];
   right--;
  }
 }
 A[left] = pivot;
 pivot = left;
 left = l_hold;
 right = r_hold;
 if(left < pivot)
  quickSort(A , left , (pivot-1));
 if(right > pivot)
  quickSort(A , (pivot+1) , right);
}