#include <iostream.h>
#include <iomanip.h>
#include "ok.cc"
#include "wypisz.cc"
#include "insertion_sort.cc"
#include "quick_sort.cc"
#include "mixed_sort.cc"
#include "heap_sort.cc"
#include "fill2.cc"
#include "forki.cc"
#include "stoper.cc"
const int N = 800000;
double t[N];
#include "merge_sort.cc"
#include "mergeins_sort.cc"
struct sort_proc
{
void (*sort) (int n, double t[]);
char *name;
};
sort_proc f[] = {
{quick_sort, "Quick "},
{mixed_sort, "Quick-mix "},
{merge_sort, "Merge "},
{mergeins_sort, "Merge-mix "},
{heap_sort, "Heap "},
{insertion_sort, "Insertion "}
};
main ()
{
fill2(N,t);
// cout<< inv(N,t)<<'/'<<N <<endl;
for(int n=2;n<N;n*=2)
{cout<< "n="<<n<<endl;
for (int i=0;i<5;i++)
{
fill2 (n, t); // wypełnij tabelę
double czas=stoper(); // spójrz na zegarek
f[i].sort(n, t); // posortuj
czas=stoper()-czas; // zobacz ile czasu upłynęło
if (ok (n, t)) // sprawdź czy dobrze posortowane
cout << f[i].name <<": "<<setprecision(3)<<czas <<endl;
else
cout << f[i].name << ": ERROR." << endl;
}
cout<<endl;
}
}
|