ho trovato in rete questo codice:
Codice PHP:
/* Complessita' temporale analisi con cronometro */
#include<stdio.h>
#include<time.h>
#define N 15000
float somma(float*, int);
float sommar(float*, int);
float sommar(float lista[], int n)
{
if (n)
return somma(lista, n-1) + lista[n-1];
else
return 0;
}
float somma(float lista[], int n)
{
float sommatemp=0;
int ii;
for(ii=0; ii<n; ii++)
sommatemp += lista[ii];
return sommatemp;
}
int main(int argc, char **argv)
{
float lista[N];
clock_t start, stop;
int ii;
for(ii=0;ii<N;ii++)
lista[ii]=ii*ii;
start = clock();
printf("risultato: %f\n", somma(lista,N));
stop = clock();
printf("Somma iterativa: %g \n", ((double)(stop-start))/CLK_TCK);
start = clock();
printf("risultato: %f\n", sommar(lista,N));
stop = clock();
printf("Somma ricorsiva: %g \n", ((double)(stop-start))/CLK_TCK);
system("PAUSE");
return 0;
}
Ma ho paura che non funzioni perchè stampa sempre 0, e poi che rappresenta %g ?