Complessità Computazionale: differenze tra le versioni

Da Bioingegneria Elettronica e Informatica.
(Creata pagina con "'''Vitoantonio Bevilacqua''' [mailto:vitoantonio.bevilacqua@poliba.it vitoantonio.bevilacqua@poliba.it] '''Antonio Brunetti''' [mailto:antonio.brunetti@poliba.it antonio.bru...")
 
Riga 19: Riga 19:
 
* n-1 incrementi (worst case)
 
* n-1 incrementi (worst case)
  
6 + n + n -1
+
'''6 + n + n -1'''
  
costo unitario per ogni confronto:
+
Costo unitario per ogni confronto:
n+1 confronti (fra i e n) nel ciclo for
+
* n+1 confronti (fra i e n) nel ciclo for
n confronti if (a[i]<n)
+
* n confronti if (a[i]<n)
  
n+ 1 + n
+
'''n + 1 + n'''
 +
<br /><br />
  
TOT f(n) = 4n+6
+
'''TOT f(n) = 4n+6'''
  
 
4n <= 4n per n >=0
 
4n <= 4n per n >=0
 +
 
6 <= 6n per n >=1
 
6 <= 6n per n >=1
 +
<br />
 +
<br />
  
 
per ogni n>=1 f(n) = 4n+6 <= 10n
 
per ogni n>=1 f(n) = 4n+6 <= 10n
 +
 
ovvero per C = 10 e K = 1 f(n) <= Cn per ogni n>=K
 
ovvero per C = 10 e K = 1 f(n) <= Cn per ogni n>=K
  
 
quindi f(n) è O(n)
 
quindi f(n) è O(n)

Versione delle 18:47, 20 mag 2018

Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it

Antonio Brunetti antonio.brunetti@poliba.it

Pagina in lavorazione

Notazione O-grande

Codice di riferimento

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)