#include<stdio.h>
#include<sys/time.h>
#define max 20
void quick(int [],int ,int);
void main()
{
            int
a[max],i,n;
            int t1,t2;
            struct
timeval tt;
            struct
timezone tz;
            printf("How
many element you want to short: ");
            scanf("%d",&n);
            printf("Enter
array: "); 
            for(i=0;i<n;i++)
               scanf("%d",&a[i]);
            gettimeofday(&tt,&tz);
            t1=tt.tv_usec;
            quick(a,0,n-1);
           
gettimeofday(&tt,&tz);
            t2=tt.tv_usec;
            printf("\n\nTime
required= %d\n",t2-t1);
            for(i=0;i<n;i++)
              printf("%d ",a[i]);
}
void quick(int a[],int low,int high)
{
            int
i,j,t,pivot;
            if(low<high)
           {
                        pivot=low;
                        i=low;
                        j=high;             
                        while(i<j)
                         {
                                    while((a[i]<=a[pivot])
&& (i<high))
                                                i++;
                                    while(a[j]>a[pivot])
                                                j--;
                                    if(i<j)
                                   {
                                                t=a[i];
                                                a[i]=a[j];
                                                a[j]=t;
                                    }
                        }
                        t=a[pivot];
                        a[pivot]=a[j];
                        a[j]=t;  
                        quick(a,low,j-1);
                        quick(a,j+1,high);
    }
Output :-

 
No comments:
Post a Comment