/* 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;
}

void 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);
}