Problem: Quick Sort
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void quicksort(int a[],int first, int last)
{
int i,j,pivot,temp;
if(first<last)
{
pivot=first;
i=first;
j=last;
while(i<j)
{
while(a[i]<=a[pivot] && i<last)
i++;
while(a[j]>a[pivot])
j--;
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
temp=a[pivot];
a[pivot]=a[j];
a[j]=temp;
quicksort(a,first,j-1);
quicksort(a,j+1,last);
}
}
void main()
{
int *a,i,size;
clrscr();
printf("ENTER THE SIZE OF ARRAY:");
scanf("%d",&size);
a=(int *)malloc(size*sizeof(int));
printf("\nENTER %d VALUES IN ARRAY: ",size);
for(i=0;i<size;i++)
{
scanf("%d",&a[i]);
}
quicksort(a,0,size-1);
printf("Array after sorting:");
for(i=0;i<size;i++)
{
printf("%d\t",a[i]);
}
getch();
}
Comments