permette di determinare
si può semplificare mediante
gode di
calcolando
valuta
applicato a tutte le
scegliendo il
espressa tramite
mediante
per n che tende a +infinito

complessita computazionale

algoritmo risolutore

r

Algoritmo che applicato a tutte le istanze di un problema ne da la soluzione corretta.

parametri

soggettivi

oggettivi

grafica

semplicità del codice

trasmissione

r

misura l'efficienza di i/o rispetto a stazioni remote

spaziale

r

occupazione di memoria da parte del programma

input e output (escluso da file)

temporale

r

il tempo necessario all'esecuzione dell'algoritmo

passi base

r

si da il valore di un passo base alle operazioni elementari

istanze

r

una possibile formulazione di un problema quando alle sue variabili sono stati assegnati valori particolari

accesso ad array

operazioni booleane

input e output da tastiera

somma algebrica

assegnazione

caso peggiore

cardinalità (n)

r

tutti gli input che hanno la stessa dimensione

funzione T(n)

r

esprime il tempo necessario affinchè l'algoritmo possa produrre la soluzione di un'istanza di dimensione n.

complessità asintotica

r

si dice che f(n) ha complessità asintotica g(n) se f(n) è uguale a O(g(n)) e contemporaneamente g(n) è la piu piccola di tutte le funzioni che soddisfano la condizione g(n)<= c*h(n)

notazione O grande

r

una funzione g(n) è detta essere O-grande di un altra funzione h(n) se esistono due costanti positive c ed l tali che per tutti i valori n >=l si abbia che g(n)<= c*h(n)

classi di complessità

pseudo lineare

r

si indica con n log n;gli algoritmi quick-sort e heap-sort sono un esempio di questa categoria.

lineare

r

indicata con O(n) è tipica degli algoritmi con operazioni proporzionali.

costante

r

indicata con O(1) , tipica degli algoritmi che eseguono lo stesso numero di operazioni indipendentemente da n.

fattoriale

r

si indica con n!

logaritmica

r

si indica con O (log n). è tipico dell'algoritmo di ricerca binaria.

n^k

r

è tipica degli algoritmi come il bubble-sort(O(n^2)) o moltiplicazione tra matrici O(n^3).

istruzione dominante

r

dato un algoritmo il cui costo di esecuzione è T(n),un'istruzione di tale algoritmo è detta dominante quando,per ogni intero n,essa viene eseguita un numero d(n)di volte tale che T(n) <a*d(n)+b ,con a e b opportune costanti.

proprietà algebriche

teorema della somma

r

la complessità di un blocco costituito da piu blocchi in sequenza è quella del blocco di complessità maggiore

teorema del prodotto

r

la complessità di un blocco costituito da piu blocchi annidati è data dal prodotto delle complessità.