16. QUICK SORT OWN PRACTICE

16. QuickSortOwnPractice

#include<stdio.h>
#include <stdlib.h>

void quicksort(int x[200],int,int);
int main()
{
int x[200],size,i;

size=100;
for(i=0; i<100; i++)
x[i]=rand();
printf(“Input data: “);
for(i=0; i<size; i++)
printf(“%d\t”,x[i]);

quicksort(x,0,size-1);
printf(“\nSorted elements: “);
for(i=0; i<size; i++)
printf(“%d\t”,x[i]);

return 0;
}

void quicksort(int x[200],int first,int last)
{
int pivot,j,i;
int temp;

if(first<last)
{
pivot=first;
i=first;
j=last;

while(i<j)
{
while(x[i]<=x[pivot]&&i<last)
i++;
while(x[j]>x[pivot])
j–;
if(i<j)
{
temp=x[j];
x[j]=x[i];
x[i]=temp;
}
}

temp=x[j];
x[j]=x[pivot];
x[pivot]=temp;
quicksort(x,first,j-1);
quicksort(x,j+1,last);

}
}