



















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
Una serie di esercizi e quiz relativi all'analisi della complessità degli algoritmi. Gli argomenti trattati includono la notazione asintotica, il teorema dell'esperto, il metodo divide et impera e la classificazione degli algoritmi in base alla loro complessità. Utile per studenti universitari e per chiunque desideri approfondire la propria conoscenza di questo importante argomento.
Tipologia: Appunti
1 / 27
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




















Tempo di esecuzione di un algoritmo: Numero di operazioni primitive/elementari che vengono eseguite da un algoritmo. Dipendono da:
Notazione O (Upper Bound) (limite asintotico superiore per f(n)) 0 ≤ f(n) ≤ cg(n) per ogni n ≥ n Per qualsiasi valore n a destra di n0, il valore della funzione f(n) coincide o sta sotto cg(n) Notazione Ω (Lower bound) (limite asintotico inferiore) 0 ≤ cg(n) ≤ f(n) per ogni n ≥ n Per tutti i valori di n a destra di n0, il valore di f(n) coincide o sta sopra cg(n) Analogia con i >=,<=, = “=” -> Θ <= -> O
= -> Ω Teorema: Per ogni coppia di funzioni f(n) e g(n), si ha f(n) = Θ(g(n)) , se e soltanto se f(n) = O(g(n)) e f(n) = Ω(g(n))
Regola:
Divide et Impera Basato sulla ricorsione:
Il tempo di esecuzione di un algoritmo Divide et Impera può essere espresso come ricorrenza:
Il metodo dell’esperto rappresenta un “ricettario” per risolvere le ricorrenze della forma: T(n) = aT(n/b) + f(n) ** Il metodo dell’esperto richiede la memorizzazione di tre casi, ma poi la soluzione di molte ricorrenze può essere facilmente determinata, spesso senza carta e penna. ** descrive il tempo di esecuzione di un algoritmo che divide un problema di dimensione n in a sottoproblemi, ciascuno di dimensione n/b, dove a e b sono costanti positive. I sottoproblemi vengono risolti in modo ricorsivo, ciascuno nel tempo T(n/b).
Prima faccio questa divisione e poi con il quick sort ordino i 2 sottoarray.