Program to sort a range of numbers with insertion, C/C++ Programming

Assignment Help:

Program to sort a range of numbers with Insertion:

/* define variable */

const int max=29000;

int list[max];

FILE *fp;

clock_t start,end;

char any1[8];

 

/* Insertion sort module */

void insertion(int min1,int max1)

{

    int a,b,v;

 

    for(a=min1;a<=max1;a++)

    {

       v = list[a];

       b = a;

       do

       {

                   list[b] = list[b-1];

                   b = b - 1;

       }  while(list[b-1] > v);

       list[b] = v;

    }

}

 

/* sort partitioning element */

void sorthree(int x,int y,int z)

{

int temp;

 

if (list[x] > list[y])

{

   temp = list[x];

   list[x] = list[y];

   list[y] = temp;

}

if (list[z] < list[x])

{

   temp = list[x];

   list[x] = list[z];

   list[z] = temp;

   temp = list[y];

   list[y] = list[z];

   list[z] = temp;

}

if ((list[z] > list[x]) && (list[z] < list[y]))

{

   temp = list[y];

   list[y] = list[z];

   list[z] = temp;

}

}

 

/* Quicksort module */

void quicksort(int min2,int max2)

{

int m,v,t,i,j,q;

 

if ((max2-min2) > 9)

{

   m = (max2-min2+1)/2;

   sorthree(min2,m,max2);

   max2=max2-1;

   q = list[m];

   list[m] = list[max2];

   list[max2] = q;

 

   v = list[max2];

   i = min2+1;

   j = max2-1;

   do

   {

      do

      {

                 i=i+1;

      } while (list[i] < v);

      do

      {

                 j=j-1;

      } while (list[j] > v);

      t = list[i];

      list[i] = list[j];

      list[j] = t;

   }  while (i

   list[j]=list[i];

   list[i]=list[max2];

   list[max2]=t;

   quicksort(min2,i-1);

   quicksort(i+1,max2);

 }

else

 insertion(m,max2);

}

 

 

/* main program */

void main()

{

int i,j,k,min,max1;

char any2[8];

 

clrscr();

cout << "Enter a file name to store data :";

cin >> any1;                                  /* input data file name on */

cout << '\n' << "Generating file...waits\n\n";/*   screen */

 

fp = fopen(any1,"w");

    for(j=0;j

    {

       for(i=0;i<200;i++)    /* write random values to file */

       {

                   k = rand();

                   fprintf(fp,"%d\n",k);

       }

    }

fclose(fp);

 

fp = fopen(any1,"r");

    i = 0;

    while(fscanf(fp,"%d\n",&k) != EOF)

    {

                  list[i] = k;  /* read values from file and assign to an array */

                  i = i + 1;

    }

fclose(fp);

min = 0;

max1 = max;

max1=max1-1;

cout << "Sorting with Quicksort... waits" << '\n';

start = clock();

quicksort(min,max1);   /* sort an unsorted list with quicksort */

end=clock();

float result = (end-start)/CLK_TCK;

cout << "The time needs to sort " << max

     << " numbers in Quciksort is : " << result << " second(s)" << "\n\n";

 

 

cout << "Enter an output file for Quicksort : ";

cin >> any2;

 

fp = fopen(any2,"w");

  for(i=0;i

  {                   /* write the output from quicksort and put them */

      k = list[i];    /*to a file */

      fprintf(fp,"%d\n",k);

  }

fclose(fp);

 

fp = fopen(any1,"r");

    i = 0;

    while(fscanf(fp,"%d\n",&k) != EOF)

    {

                  list[i] = k;

                  i = i + 1;

    }

fclose(fp);

cout << "\nSorting with Insertion Sort... waits" << '\n';

start = clock();

insertion(0,max);   /* sort an unsorted list with insertion sort */

end=clock();

result = (end-start)/CLK_TCK;

cout << "The time needs to sort " << max

     << " numbers in Insertion is : " << result << " second(s)" << "\n\n";

 

cout << "Sort an already sorted array again with Quicksort..." << '\n';

min = 0;

max1 = max;

max1=max1-1;

start = clock();

quicksort(min,max1);  /* sort an already sort list with quicksort */

end=clock();

result = (end-start)/CLK_TCK;

cout << "The time needs to sort " << max

     << " numbers in Quicksort is : " << result << " second(s)" << "\n";

 

cout << "Sort an already sorted array again with Insertion sort..." << '\n';

start = clock();

insertion(0,max);   /* sort an already list with insertion sort */

end=clock();

result = (end-start)/CLK_TCK;

cout << "The time needs to sort " << max

     << " numbers in Insertion sort is : " << result << " second(s)" << '\n';

}

 

 

 


Related Discussions:- Program to sort a range of numbers with insertion

Define the system oriented data files, Define the System Oriented Data File...

Define the System Oriented Data Files? System-oriented data files are further closely related to the computer's operating system than Stream- oriented data files and they are s

Define memory alignment??, Primarily the term alignment refers the tendency...

Primarily the term alignment refers the tendency of an address pointer value to be a multiple of some power of two. Thus a pointer with two byte alignment contains a zero in the le

Named what can derived class add?, New data members  New member function...

New data members  New member functions  New constructors and destructor  New friends

Guidelines or "rules of thumb" for overloading operators?, What are some gu...

What are some guidelines / "rules of thumb" for overloading operators? A: Here are a few guidelines / rules of thumb .Use common sense. If your overloaded operator makes life si

Areaundercurve, Write a program to find the area under the curve y = f(x) b...

Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b. The area under a curve betw .

Array, Assigning value to individual elements in array

Assigning value to individual elements in array

Program for swapping the two integers, Program for Swapping the Two Integer...

Program for Swapping the Two Integers                 For example, Swapping the two value                                 int x=4,y=6,t;                                 t

#, #Write a program to find the area under the curve y = f(x) between x = a...

#Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b. The area under a curve between two points can

What difficulty does the namespace feature solve out?, A: Multiple provider...

A: Multiple providers of libraries might employ common global identifiers causing a name collision whereas an application attempt to link with two or more such libraries. The names

Explain destructors, Destructors A destructor function gets implemented...

Destructors A destructor function gets implemented whenever an instance of the class to which it belongs goes out of existence. The primary usage of a destructor function is

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd