
Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Spiega cos'è l'algoritmo e la complessità computazionale
Tipologia: Appunti
1 / 1
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!

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.