Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Complessità Computazionale: Introduzione al Tempo di Esecuzione dei Programmi, Appunti di Algoritmi E Strutture Di Dati

Spiega cos'è l'algoritmo e la complessità computazionale

Tipologia: Appunti

2022/2023

Caricato il 29/03/2024

antonella-lopes
antonella-lopes 🇮🇹

2 documenti

1 / 1

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Complessita computazionale
1.1 Tempo di esecuzione dei programmi
Si dice complessità di un algoritmo la funzione che associa alla
“dimensione” del problema il costo della sua risoluzione in base alla misura
scelta. Possibili misure sono il tempo di esecuzione o lo spazio di memoria.
Supponiamo di voler valutare il tempo di esecuzione di un programma.
Possiamo provarlo su un insieme significativo di ingressi e misurare il tempo
di esecuzione. Quasi tutti gli ambienti di programmazione forniscono uno
strumento di profiling, per mezzo del quale `e possibile associare ad ogni
istruzione un tempo e calcolare cos`ı il tempo totale di una esecuzione.
Vedremo come sia possibile invece dare una misura dell’efficienza in termini
di tempo, svincolata dalla particolare macchina sulla quale i programmi
vengono eseguiti. Naturalmente, nei casi concreti di progetto di algoritmi,
tale misura `e solo indicativa e dovrà essere considerata insieme agli altri
fattori che possono influenzare il tempo reale di esecuzione.
Ovviamente il tempo di esecuzione di un programma dipende dalla
dimensione degli ingressi. La prima cosa da fare per valutare un programma
`e quindi individuare qual `e la dimensione o misura degli ingressi. Questa
misura può variare da programma a programma. Per esempio, per un
programma di ordinamento la dimensione `e in genere il numero di
elementi da ordinare, per un programma che risolve sistemi di equazioni `e
il numero delle incognite, per un programma su liste la lunghezza delle liste,
per un programma che lavora su matrici il numero di righe e di colonne.
Dato un programma P, chiamiamo TP (n) (o semplicemente T(n) quando il
programma cui ci si riferisce `e chiaro dal contesto) il tempo di esecuzione
di P per ingressi di dimensione n.
Piu precisamente, T(n) indica il numero di unit`a di tempo che P impiega
per elaborare un ingresso di dimensione n. T(n) `e una funzione da N in N (N
→ N), dove con N indichiamo gli interi non negativi.

Anteprima parziale del testo

Scarica Complessità Computazionale: Introduzione al Tempo di Esecuzione dei Programmi e più Appunti in PDF di Algoritmi E Strutture Di Dati solo su Docsity!

Complessita computazionale 1.1 Tempo di esecuzione dei programmi Si dice complessità di un algoritmo la funzione che associa alla “dimensione” del problema il costo della sua risoluzione in base alla misura scelta. Possibili misure sono il tempo di esecuzione o lo spazio di memoria. Supponiamo di voler valutare il tempo di esecuzione di un programma. Possiamo provarlo su un insieme significativo di ingressi e misurare il tempo di esecuzione. Quasi tutti gli ambienti di programmazione forniscono uno strumento di profiling, per mezzo del quale e possibile associare ad ogni istruzione un tempo e calcolare cosı il tempo totale di una esecuzione. Vedremo come sia possibile invece dare una misura dell’efficienza in termini di tempo, svincolata dalla particolare macchina sulla quale i programmi vengono eseguiti. Naturalmente, nei casi concreti di progetto di algoritmi, tale misura e solo indicativa e dovrà essere considerata insieme agli altri fattori che possono influenzare il tempo reale di esecuzione. Ovviamente il tempo di esecuzione di un programma dipende dalla dimensione degli ingressi. La prima cosa da fare per valutare un programmae quindi individuare qual e la dimensione o misura degli ingressi. Questa misura può variare da programma a programma. Per esempio, per un programma di ordinamento la dimensionee in genere il numero di elementi da ordinare, per un programma che risolve sistemi di equazioni e il numero delle incognite, per un programma su liste la lunghezza delle liste, per un programma che lavora su matrici il numero di righe e di colonne. Dato un programma P, chiamiamo TP (n) (o semplicemente T(n) quando il programma cui ci si riferiscee chiaro dal contesto) il tempo di esecuzione di P per ingressi di dimensione n. Piu precisamente, T(n) indica il numero di unita di tempo che P impiega per elaborare un ingresso di dimensione n. T(n)e una funzione da N in N (N → N), dove con N indichiamo gli interi non negativi.