Calcolare il tempo di CPU: comprendere l'esercizio

V.C5
Ciao a tutti ragazzi.
Ho un dubbio su come fare a calcolare il tempo di CPU di un algoritmo.
L'esercizio è facile: bisogna calcolare la somma dei primi n numeri usando la formula n(n-1)/2 e verificare se il risultato corrisponde con quello ottenuto sommando i primi n naturali. Fino a qui nulla di complicato, ma si richiede di calcolare il tempo di CPU in entrambi i casi; nell'esercizio è scritta la nota: per stimare il tempo di calcolo, eseguire l'esercizio in un ciclo for un certo numero di volte e fare una media aritmetica dei tempi di calcolo stimati in ognuno, ma io non ho idea di come si possa fare. Io so che in secondi si può stimare il tempo in questo modo:
(istruzioni) * (istruzioni/secondo)^(-1) = secondi

Quindi come potrei applicare la formula al mio algoritmo?

pseudocodice:
leggi intero n;
int i;
int s1=0,s2;
for i=1,...,n
s1=s1+i;
s2=n*(n+1)/2;

Risposte
Raptorista1
Se sei in ambiente unix, puoi lanciare il programma premettendo il comando "time" che calcola il tempo di esecuzione, in questo modo
~$ time ./programma


In alternativa puoi usare la libreria time.h che include la funzione int clock() e la macro CLOCKS_PER_SEC.
In questo modo puoi calcolare il tempo di esecuzione come se fosse \(t = \frac s v\).

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.