Quick Sort Code in C / Data Structure

                      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