Qual'è la complessità di tempo e spazio in questo programmino?
Io per il tempo mi trovo T(n)=O(n) ma per lo spazio non lo sò...codice:#include <stdio.h> #include <malloc.h> /* PROTOTIPO DELLA FUNZIONE */ void horner(float *coeff, int n, float c, float *ris); /* PROGRAMMA CHIAMANTE */ main(){ /* DICHIARAZIONE VARIABILI */ int i, n; float *coeff, r, c; /* LETTURA DEL GRADO DEL POLINOMIO */ printf("Inserire il grado del polinomio: "); scanf("%d", &n); /* ALLOCAZIONE DINAMICA DELLA MEMORIA */ if(!(coeff = (float *)malloc(n*sizeof(float)))) abort(); /* LETTURA DEI COEFFICIENTI DI A */ printf("\nInserire uno ad uno i valori dei coefficienti: \n"); for(i = 0; i <= n; i++) { printf("Inserire il valore del coeff %d: ", i); scanf("%f", &coeff[i]); } /* LETTURA DELLA VARIABILE c */ printf("\nInserisci il valore del punto c: "); scanf("%f",&c); /* RICHIAMO DELLA FUNZIONE */ horner(coeff, n, c, &r); /* STAMPA DEL RISULTATO */ printf("\nIl polinomio vale: %f \n", r); /* RILASCIO DELLA MEMORIA OCCUPATA DALL'ARRAY */ free(coeff); } /****************** SPECIFICHE FUNZIONE *************************/ void horner(float *coeff, int n, float c, float *ris) { int i, p; p = coeff[n]; for(i = n-1; i >= 0; i--) { p = p * c + coeff[i]; } *ris = p; }

Rispondi quotando