#include<stdio.h>
//swapping two numbers
void swap(int* a, int* b){
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int* a, int s, int e){
int i,j=s-1;
int pivot = a[e];
for(i=s; i<e; i++){
if(a[i] <= pivot){
j++;
swap(&a[i],&a[j]);
}
}
swap(&a[j+1],&a[e]);
return j+1;
}
void quicksort(int* a, int s, int e){
if(s >= e) return;
int pi = partition(a,s,e);
quicksort(a,s,pi-1);
quicksort(a,pi+1,e);
}
int main(){
int n;
printf("Enter size of array\n");
scanf("%d",&n);
int a[n],i;
printf("Enter elements of array\n");
for(i=0; i<n; i++)
scanf("%d",a+i);
quicksort(a,0,n-1);
printf("Sorted array:\n");
for(i=0; i<n; i++)
printf("%d ",a[i]);
return 0;
}