• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pomiar czasu w wykonaniu funkcji

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
661 wizyt
pytanie zadane 28 września 2016 w C i C++ przez Arkadiusz Sieczak Początkujący (400 p.)

Witajcie, piszę program z pracy domowej od Pana Zelenta. W programie obliczane są silnie: iteracyjnie, rekurencyjnie. Napisałem dwie osobne funkcje, jednak problem jest ze zmierzeniem czasu obliczania. Prosiłbym o pomoc. (Używam Deva)

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std; 
int start, stop;
double czas;

	long int silrek(int n)
	{
		start=clock();

		if(n==0) return 1;
		else return silrek(n-1)*n;
		
		stop=clock();
		czas=(double)(stop-start)/CLOCKS_PER_SEC;
	}

	long int silit(int n)
	{   
		start=clock();
		long int a = 1;
		while(n)
		a=a*n--;		
		return a;
	
		stop=clock();
		czas=(double)(stop-start)/CLOCKS_PER_SEC;
	}

int main()
{
	int a;
	cout<<"Z ilu chcesz obliczyc silnie: ";  cin>>a;
	cout<<"Silnia rekurencyjnie:"<<silrek(a)<<endl; 
			cout<<"Czas silni rekurencyjnie: "<<czas<<endl;
	cout<<"Silnia iteracyjnie:"<<silit(a)<<endl; 
			cout<<"Czas silni iteracyjnie: "<<czas;

	return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 28 września 2016 przez mariush Dyskutant (7,860 p.)

W obu przypadkach ustawiasz zmienną stop i czas po wykonaniu instrukcji return. Operacje po return nie zostaną wykonane. Czasu funkcji rekurencyjnej nie zmierzysz w ten sposób, bo z każdym wywołaniem funkcji wewnątrz jej ciała od nowa będziesz ustawiał globalną zmienną start.

komentarz 28 września 2016 przez Arkadiusz Sieczak Początkujący (400 p.)
Dziękuję za pomoc

Podobne pytania

0 głosów
1 odpowiedź 544 wizyt
pytanie zadane 10 października 2021 w C i C++ przez yato_ Początkujący (350 p.)
0 głosów
1 odpowiedź 561 wizyt
pytanie zadane 28 grudnia 2016 w C i C++ przez vega Użytkownik (510 p.)
0 głosów
1 odpowiedź 507 wizyt
pytanie zadane 17 listopada 2020 w C i C++ przez ifuknowme555 Początkujący (410 p.)

93,430 zapytań

142,427 odpowiedzi

322,652 komentarzy

62,792 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...