#include<stdio.h>
//Function to swap twp numbers
void swap(int*a,int*b)
{
int temp=*a;
*a=*b;
*b=temp;
}
//Partition function using first element as pivot
int partition(int arr[],int low,int high)
{
int pivot=arr[low];//choosing 1st element as pivot
int i=low=1;
int j=high;
while(1)
{
while(i<=high&&arr[i]<=pivot)
i++;
while(j>=low&&arr[j]>pivot)
j--;
if(i<j)
{
swap(&arr[i],&arr[j]);
}
else
{
break;
}
}
swap(&arr[low],&arr[j]);//place pivot in correct position
return j;
}
//Quick sort function
void quickSort(int arr[],int low,int high)
{
if(low<high)
{
int pi=partition(arr,low,high);
//Recursively sort elemnts before amd after partition
quickSort(arr,low,pi-1);
quickSort(arr,pi+1,high);
}
}
//drive code
int main()
{
int arr[]={34,7,23,32,5,62};
int n=sizeof(arr)/sizeof(arr[0]);
printf("Unsorted array:");
for (int i=0;i<n;i++)
printf("%d",arr[i]);
quickSort(arr,0,n-1);
printf("\n Sorted array:");
for(int i=0;i<n;i++)
printf("%d",arr[i]);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KLy9GdW5jdGlvbiB0byBzd2FwIHR3cCBudW1iZXJzCnZvaWQgc3dhcChpbnQqYSxpbnQqYikKewoJaW50IHRlbXA9KmE7CgkqYT0qYjsKCSpiPXRlbXA7Cn0KLy9QYXJ0aXRpb24gZnVuY3Rpb24gdXNpbmcgZmlyc3QgZWxlbWVudCBhcyBwaXZvdAppbnQgcGFydGl0aW9uKGludCBhcnJbXSxpbnQgbG93LGludCBoaWdoKQp7CglpbnQgcGl2b3Q9YXJyW2xvd107Ly9jaG9vc2luZyAxc3QgZWxlbWVudCBhcyBwaXZvdAoKCWludCAgaT1sb3c9MTsKCWludCBqPWhpZ2g7Cgl3aGlsZSgxKQoJewoJCXdoaWxlKGk8PWhpZ2gmJmFycltpXTw9cGl2b3QpCgkJaSsrOwoJCXdoaWxlKGo+PWxvdyYmYXJyW2pdPnBpdm90KQoJCWotLTsKCWlmKGk8aikKCXsKCQlzd2FwKCZhcnJbaV0sJmFycltqXSk7Cgl9CgllbHNlCgl7CgkJYnJlYWs7Cgl9Cgl9Cglzd2FwKCZhcnJbbG93XSwmYXJyW2pdKTsvL3BsYWNlIHBpdm90IGluIGNvcnJlY3QgcG9zaXRpb24KCXJldHVybiBqOwp9Ci8vUXVpY2sgc29ydCBmdW5jdGlvbgp2b2lkIHF1aWNrU29ydChpbnQgYXJyW10saW50IGxvdyxpbnQgaGlnaCkKewoJaWYobG93PGhpZ2gpCgl7CgkJaW50IHBpPXBhcnRpdGlvbihhcnIsbG93LGhpZ2gpOwovL1JlY3Vyc2l2ZWx5IHNvcnQgZWxlbW50cyBiZWZvcmUgYW1kIGFmdGVyIHBhcnRpdGlvbgogcXVpY2tTb3J0KGFycixsb3cscGktMSk7CiBxdWlja1NvcnQoYXJyLHBpKzEsaGlnaCk7Cgl9Cn0KLy9kcml2ZSBjb2RlCmludCBtYWluKCkKewoJaW50IGFycltdPXszNCw3LDIzLDMyLDUsNjJ9OwoJaW50IG49c2l6ZW9mKGFycikvc2l6ZW9mKGFyclswXSk7CglwcmludGYoIlVuc29ydGVkIGFycmF5OiIpOwoJZm9yIChpbnQgaT0wO2k8bjtpKyspCglwcmludGYoIiVkIixhcnJbaV0pOwoJcXVpY2tTb3J0KGFyciwwLG4tMSk7CglwcmludGYoIlxuIFNvcnRlZCBhcnJheToiKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspCglwcmludGYoIiVkIixhcnJbaV0pOwoJcmV0dXJuIDA7Cn0J