






















































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
Algoritmi, lezione 7, Unimi 2016/2017, Ceravolo
Tipologia: Dispense
1 / 62
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!























































Studiare gli algoritmi
Correttezza di un algoritmo
Correttezza di un algoritmo
INIZIO
C = X - Y
Dati X e Y
Enumera
X
No "Il valore è X"
X Si
Complessità di un algoritmo
Complessità computazionale
Complessità Asintotica
Complessità Asintotica
stringa es: [email protected] è vuotà? Stampa a video Si stringa es: pippo Stringa prima del carattere @ Stringa dopo il carattere. "Email non valida" è vuotà? Stringa dopo il carattere @ FINE No Si stringa es: es.it Si è vuotà? No No stringa es: it Stampa a video "Email valida" Valida Email
stringa es: [email protected] è vuotà? Stampa a video Si stringa es: pippo Stringa prima del carattere @ Stringa dopo il carattere. "Email non valida" è vuotà? Stringa dopo il carattere @ FINE No Si stringa es: es.it Si è vuotà? No No stringa es: it Stampa a video "Email valida" Valida Email 1.A quali condizioni questo algoritmo giungerà a terminazione? A condizione di ricevere una stringa in input 2.Quante operazioni saranno necessarie per eseguire l’algoritmo? Da 2 (caso ottimo) a 4 operazioni (caso pessimo). Indipendentemente dal numero di caratteri della stringa in input 4.A quale classe di complessità asintotica appartiene l’algoritmo? Le operazioni dipendono solo da elementi costanti quindi la complessità asintotica è O(1)
Ricerca binaria 1.A quali condizioni questo algoritmo giungerà a terminazione? A condizione di ricevere una lista ordinata 3.Quante operazioni saranno necessarie per eseguire l’algoritmo? 2 + 2 log(n) nel caso pessimo 3 nel caso ottimo dove n è la lunghezza della lista 5.A quale classe di complessità asintotica appartiene l’algoritmo? Non considerando le costanti la complessità è: O (log n) Ricerca binaria lista ordinata L es: 1,3,4,6,7,8,10,13, E = E' Seleziona indice: ind = ind/ E < E' Elemento trovato
Si No "E' è E" "E' ha indice = ind" Si elemento da trovare E es: 4 ind es: 4 Seleziona indice: ind = L.length/ elemento letto E' es: 7 Leggi L[ind] No Seleziona indice: ind = ind + (ind/2)
Similarità tra stringhe
Grado di similarità di due stringhe Stringa S es: casa ind Prendi ind1 = 0 Prendi ind2 = 0 Lettere uguali = Lettere uguali + FINE Stringa S es: cara ind ind1 <= S1.length Si No S1[ind1] = S2[ind2] ind2 <= S2.length No Si No Si Lettere uguali ind2 = ind Lettere diverse = Lettere diverse + ind1 = ind1 + ind2 = 0 Similarità(S1, S2) = Lettere uguali / (Lettere uguali + Lettere diverse) Similarità (S1, S2) Lettere diverse