Instead of The ELEMENTS being 25 is there a way to randomly generate a large array of elements….10000, 100000, or even 1000000 elements and then use my insertion sort algorithms. I am trying to have a large array of elements and use insertion sort to put them in order and then also in reverse order. Next I used clock() in the time.h file to figure out the run time of each algorithm. I am trying to test with a large amount of numbers.
#define ELEMENTS 25
void insertion_sort(int x[],int length);
void insertion_sort_reverse(int x[],int length);
int main()
{
clock_t tStart = clock();
int B[ELEMENTS]={4,2,5,6,1,3,17,14,67,45,32,66,88,
78,69,92,93,21,25,23,71,61,59,60,30};
int x;
cout<<"Not Sorted: "<<endl;
for(x=0;x<ELEMENTS;x++)
cout<<B[x]<<endl;
insertion_sort(B,ELEMENTS);
cout <<"Sorted Normal: "<<endl;
for(x=0;x<ELEMENTS;x++)
cout<< B[x] <<endl;
insertion_sort_reverse(B,ELEMENTS);
cout <<"Sorted Reverse: "<<endl;
for(x=0;x<ELEMENTS;x++)
cout<< B[x] <<endl;
double seconds = clock() / double(CLK_TCK);
cout << "This program has been running for " << seconds << " seconds." << endl;
system("pause");
return 0;
}
generateis a generic algorithm that fills a range with values generated by a functor. In this case we provide it with a functor that uses our source of random data to produce random numbers, and we provide a range corresponding to a container, which we can use aftergeneratefills it with data.std::generate()std::uniform_int_distributionstd::mt19937We’re using
std::mt19937andstd::uniform_int_distribution, standard C++ facilities as of C++11 (and available in VS2010), to create random numbers instead of the olderstd::rand()andstd::srand()because the newer method is easier to use correctly, higher quality and more flexible.If you’re using VS2012 or higher then the C++11 time library is available.
<chrono>