Complessità Computazionale: differenze tra le versioni
Da Bioingegneria Elettronica e Informatica.
(→Notazione O-grande) |
(→Notazione O-grande) |
||
Riga 19: | Riga 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | === Soluzione === | ||
Costo unitario per ogni dichiarazione (locale o formale) e/o assegnazione, valore restituito: | Costo unitario per ogni dichiarazione (locale o formale) e/o assegnazione, valore restituito: | ||
Versione delle 17:50, 20 mag 2018
Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it
Antonio Brunetti antonio.brunetti@poliba.it
Pagina in lavorazione
Notazione O-grande
public static int avobeMeanCount(double[] a, double mean) { int n = a.lenght, count = 0; for(int i = 0; i < n; i++) if (a[i] > mean) count++; return count; } // metodo abouveMeanCount
Soluzione
Costo unitario per ogni dichiarazione (locale o formale) e/o assegnazione, valore restituito:
- double [] a; -> 1
- double mean; -> 2
- int n = a.lenght; -> 3
- int count = 0; -> 4
- int i=0; -> 5
- return count; -> 6
- n incrementi di i nel ciclo for (da i = 1 a i = n)
- n-1 incrementi (worst case)
6 + n + n -1
Costo unitario per ogni confronto:
- n+1 confronti (fra i e n) nel ciclo for
- n confronti if (a[i]<n)
n + 1 + n
TOT f(n) = 4n+6
4n <= 4n per n >=0
6 <= 6n per n >=1
per ogni n>=1 f(n) = 4n+6 <= 10n
ovvero per C = 10 e K = 1 f(n) <= Cn per ogni n>=K
quindi f(n) è O(n)