#include<stdio.h>
void swap (int arr[], int left, int right)
{
int temp;
temp=arr[left];
arr[left]=arr[right];
arr[right]=temp;
}
void quicksort( int arr[], int low, int high )
{
int pivot;
if ( high > low )
{
pivot = partition( arr, low, high );
quicksort( arr, low, pivot-1 );
quicksort( arr, pivot+1, high );
}
}
int partition( int arr[], int low, int high )
{
int left, right;
int item_pivot;
int pivot = left = low;
item_pivot = arr[low];
right = high;
while ( left < right )
{
while( arr[left] <= item_pivot )
left++;
while( arr[right] > item_pivot)
right--;
if ( left < right )
swap(arr,left,right);
}
arr[low] = arr[right];
arr[right] = item_pivot;
return right;
}
void printarray(int arr[], int);
int main()
{
int arr[50], i, n;
//printf("\nEnter no. of elements: ");
//printf("\nEnter the elements: \n");
for (i=0; i<n; i++)
printf("\nUnsorted array: \n"); printarray(arr,n);
quicksort(arr,0,n-1);
printarray(arr,n);
}
void printarray(int arr[], int n)
{
int i;
for (i=0; i<n; i++)
}
I2luY2x1ZGU8c3RkaW8uaD4KIAp2b2lkIHN3YXAgKGludCBhcnJbXSwgaW50IGxlZnQsIGludCByaWdodCkKIHsKIGludCB0ZW1wOwogdGVtcD1hcnJbbGVmdF07CiBhcnJbbGVmdF09YXJyW3JpZ2h0XTsKIGFycltyaWdodF09dGVtcDsgCiB9CnZvaWQgcXVpY2tzb3J0KCBpbnQgYXJyW10sIGludCBsb3csIGludCBoaWdoICkKIHsKIGludCBwaXZvdDsKIGlmICggaGlnaCA+IGxvdyApCiB7CiAgcGl2b3QgPSBwYXJ0aXRpb24oIGFyciwgbG93LCBoaWdoICk7CiAgcXVpY2tzb3J0KCBhcnIsIGxvdywgcGl2b3QtMSApOwogIHF1aWNrc29ydCggYXJyLCBwaXZvdCsxLCBoaWdoICk7CiB9CiB9IAppbnQgcGFydGl0aW9uKCBpbnQgYXJyW10sIGludCBsb3csIGludCBoaWdoICkKewogaW50IGxlZnQsIHJpZ2h0OwogaW50IGl0ZW1fcGl2b3Q7CiBpbnQgcGl2b3QgPSBsZWZ0ID0gbG93OyAKIGl0ZW1fcGl2b3QgPSBhcnJbbG93XTsgCiByaWdodCA9IGhpZ2g7CiB3aGlsZSAoIGxlZnQgPCByaWdodCApIAogewogIHdoaWxlKCBhcnJbbGVmdF0gPD0gaXRlbV9waXZvdCApIAogICBsZWZ0Kys7CiAgd2hpbGUoIGFycltyaWdodF0gPiBpdGVtX3Bpdm90KSAKICAgcmlnaHQtLTsKICBpZiAoIGxlZnQgPCByaWdodCApIAogICBzd2FwKGFycixsZWZ0LHJpZ2h0KTsKIH0KIGFycltsb3ddID0gYXJyW3JpZ2h0XTsKIGFycltyaWdodF0gPSBpdGVtX3Bpdm90OwogcmV0dXJuIHJpZ2h0Owp9CnZvaWQgcHJpbnRhcnJheShpbnQgYXJyW10sIGludCk7CiAKaW50IG1haW4oKQp7CiBpbnQgYXJyWzUwXSwgaSwgbjsKIC8vcHJpbnRmKCJcbkVudGVyIG5vLiBvZiBlbGVtZW50czogIik7IAogc2NhbmYoIiVkIiwgJm4pOwogLy9wcmludGYoIlxuRW50ZXIgdGhlIGVsZW1lbnRzOiBcbiIpOwogZm9yIChpPTA7IGk8bjsgaSsrKQogIHNjYW5mICgiJWQiLCAmYXJyW2ldKTsKIHByaW50ZigiXG5VbnNvcnRlZCBhcnJheTogXG4iKTsKIHByaW50YXJyYXkoYXJyLG4pOwogcXVpY2tzb3J0KGFyciwwLG4tMSk7CiBwcmludGYoIlxuU29ydGVkIGFycmF5OiBcbiIpOwogcHJpbnRhcnJheShhcnIsbik7CiB9CiB2b2lkIHByaW50YXJyYXkoaW50IGFycltdLCBpbnQgbikKewogaW50IGk7CiBmb3IgKGk9MDsgaTxuOyBpKyspCiAgcHJpbnRmKCIgJWQgIiwgYXJyW2ldKTsKIHByaW50ZigiXG4iKTsKfQ==