Blogger news

Followers

Monday, July 21, 2014
/* Sort a given set of elements using the quicksort method and determine the time required to sort the elements. Repeat the experiment for different values of n,
the number of elements in the list to be sorted and plot a graph of the time taken versus n.The elements can be read
From a file or can be generated using the random number generator*/


#include<stdio.h>
#include<time.h>
int a[10000000];
void swap1(int a[],int i,int j)
{
            int temp;
            temp=a[i];
            a[i]=a[j];
            a[j]=temp;
}
int partition(int a[],int m,int p)
{
            int i,j,pi;
            pi=a[m];
            i=m;j=p;
            while(i<=j)
            {
                        while(a[i]<=pi)
                                    i++;
                        while(a[j]>pi)
                                    j--;
                        if(i<j)
                                    swap1(a,i,j);
            }
            a[m]=a[j];
            a[j]=pi;
            return j;
}

void quicksort(int a[],int m,int p)
{
            int j;
            if(m<p)
            {
                        j=partition(a,m,p);
                        quicksort(a,m,(j-1));
                        quicksort(a,(j+1),p);
            }
}
void main()
{
            int n,i,m,p;
            double start,end,dur,maxm;
            printf("\n\nEnter the number of elements\n\n");
            scanf("%d",&n);
            for(i=0;i<n;i++)
            {
                        a[i]=rand()%100;
            }
            for(i=0;i<n;i++)
                        printf("\n\nRandom numbers are%d\t",a[i]);
            start=clock();
            for(k=0;k<maxm;k++)
            quicksort(a,m,p);
            end=clock();
            dur=(end-start)/CLOCKS_PER_SEC;
            printf("\n\nTime taken is:%lf\t\n\n",dur);
            printf("\n\nSorted array is:");
            for(i=0;i<n;i++)
                        printf("%d\t",a[i]);
            printf("\n\n");
}

0 comments: