Sunday, 17 June 2012

Quick sort


#include<stdio.h>
#include<conio.h>
void main()
{
 int a[20],n,i; void quick(int a[],int lb,int ub);
 clrscr();
 printf("\n Enter size of array: ");
 scanf("%d",&n);
 printf("\n Enter the elements: ");
 for(i=0;i<n;i++)
  scanf("%d",&a[i]);
 quick(a,0,n-1);
 printf("\n Elements after sorting:");
 for(i=0;i<n;i++)
  printf("%d\t",a[i]);
 getch();
}
void quick(int a[],int lb,int ub)
{
 int i,j,temp,pivot;
 if(lb<ub)
 {
  i=lb+1;
  j=ub;
  pivot=a[lb];
  while(1)
  {
   while((a[i]<pivot)&&(i<=ub))
    i++;
   while((a[j]>pivot)&&(j>lb))
    j--;
   if(i<j)
   {
    temp=a[i];
    a[i]=a[j];
    a[j]=temp;
    i++;j--;
   }
   else
    break;
  }
  a[lb]=a[j];
  a[j]=pivot;
  quick(a,lb,j-1);
  quick(a,j+1,ub);
 }
}

No comments:

Post a Comment