Witam,
Nie znajduję w odpowiedziach pod filmikiem na yt, ani tu na forum pomysłu na to, jak napisać program PORÓWNUJĄCY czas na obliczenie dwóch różnych algorytmów (iteracyjne/rekurencyjne), zamiast tego pełno wypisująch kolejno obliczenia jedno pod drugim.
Jest jakiś sposób, żeby nie tyle wypisywać dany algorytm, a następnie jego czas i tak jeden za drugim, co jest zadaniem prostym, tylko napisać program który zestawi dwa czasy i wypisze np. który algorytm zajął mniej?
Próbowałem już nadawać obliczeniom czasu inne zmienne, typu czas1, czas2, start1, start2, stop1, stop2 i porównywać te dane, ale to nie działa..
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <time.h>
using namespace std;
clock_t start, stop, start1, stop1;
double czas, czas1;
long double potega(int p, int w) //funkcja na potęgowanie rekurencyjne
{
if (w==0) return 1;
else return p*potega(p,w-1);
}
int o=24, v=124; //zmienne potęgowania iteracyjnego
long double wynik=1;
int main()
{
start=clock();
cout <<"-Potega: "<<endl<< potega(24,124) << endl; //rekurencja z potegowania
stop=clock();
czas=(double)(stop-start)/CLOCKS_PER_SEC;
cout<<"---Czas operacji : "<<czas<<endl<< endl;
start=clock();
cout<<"'-Potega iteracyjna: "<<endl;
while (v>0)
{
wynik=wynik*o;
v--;
}
cout<<wynik<<endl;
stop=clock();
czas=(double) (stop-start)/CLOCKS_PER_SEC;
cout<<"---Czas operacji ' :"<<czas<<endl<<endl;
system("pause");
return 0;
}