ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15"

Transcript

1 ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino le funzioni n 2 log n, log 2 n,2 n,4 log n per tasso di crescita. ESERCIZIO 3 (a) Si stabilisca se l array [25, 12, 13, 6, 9, 7, 5, 1, 8, 4] è un max-heap. (b) Si descriva la procedura Max-Heapify e quindi si illustri l azione di Max-Heapify(A, 3) sull array A =[1, 3, 9, 2, 2, 14, 12, 1, 1, 1, 1, 10, 11, 11, 9]. ESERCIZIO 4 Si descriva l algoritmo Counting Sort (campo di applicazione, pseudocodice, complessità, proprietà, ecc.) e lo si illustri sull array A =[2, 0, 3, 6, 2, 0, 4, 2]. ESERCIZIO 5 Si illustri un semplice algoritmo che risolva in tempo lineare il problema della selezione per un arbitraria statistica d ordine, basato su una subroutine data, Median, che trova la mediana in tempo lineare. ESERCIZIO 6 (a) Sia T una tabella hash di dimensione 16, inizialmente vuota, organizzata con il metodo dell indirizzamento aperto. Sia h(x, i) :N {0, 1,...,15}!{0, 1,...,15} la funzione hash quadratica definita da i(i + 1) h(x, i) = x + mod Si illustri l inserimento delle chiavi 84, 6, 116, 18, 100, 97, 96, 113, 22, 7, 10, 71 (nell ordine dato) nella tabella T utilizzando la funzione hash h. (b) Si enunci l ipotesi di hashing uniforme e si forniscano dei limiti superiori al numero medio di scansioni in ricerche con e senza successo in una tabella hash con fattore di carico, assumendo l ipotesi di hashing uniforme. (c) La funzione h(x, i) definita sopra soddisfa l ipotesi di hashing uniforme? Perchè?

2 1 a prova in itinere 17 dicembre 2015 (A) Si enuncino il Teorema Master e il suo Corollario, quindi si risolva la seguente equazione di ricorrenza al variare del parametro b 1: n T (n) = 16 T + n 2b 2 log 2 n. Per quali valori di b si ha: (a) T (n) =O(n 4 ); (b) T (n) = (n 4 ); (c) T (n) = (n 4 ); (d) T (n) =O(n 2 log n)? (B) Si ordinino per tasso di crescita le funzioni n 2 log n, n log 2 n, 2 n n 4, n 2 log n n, n log 4 n. (a) Si enunci l ipotesi di hashing uniforme e si forniscano dei limiti superiori al numero medio di scansioni in ricerche con e senza successo in una tabella hash con fattore di carico, assumendo l ipotesi di hashing uniforme. (b) (Facoltativo) Si descriva la procedura per l inserimento di una chiave in una tabella hash organizzata con l indirizzamento aperto. (c) Data la funzione h(x, i) = Def (x +3i) mod 17, si illustri l inserimento delle chiavi 23, 43, 48, 52, 21, 5, 78, 55, 35, 62, 72, 17, 51, 58, 46 in una tabella hash di dimensione 17, inizialmente vuota e organizzata con l indirizzamento aperto, utilizzando h(x, i) come funzione hash. (a) Si fornisca (con dimostrazione) un limite superiore sull altezza di un heap binario con n elementi. (b) Si descriva la procedura Build-Max-Heap e se ne illustri l azione sull array A =[5, 4, 1, 3, 20, 12, 14, 15, 10, 8]. Si descriva l algoritmo Counting Sort (campo di applicazione, pseudocodice, complessità, proprietà, ecc.) e lo si illustri sull array di coppie A =[(9,A), (6,B), (0,C), (9,D), (5,E), (7,F), (0,G), (9,H), (5,I)], da ordinare rispetto alla prima componente.

3 ANNO ACCADEMICO 2014/15 Terza sessione di esami (II appello) - 06 ottobre 2015 ESERCIZIO 1 (Equazione di ricorrenza) Si enuncino il Teorema Master ed il suo Corollorio, quindi si risolva la seguente equazione di ricorrenza al variare del parametro 1: n T (n) = T + n 2 log 2 n. 2 Per quali valori di si ha: (a) T (n) =O(n 3 ); (b) T (n) = (n 2 log 3 n); (c) T (n) = (n 2 log 4 n)? ESERCIZIO 2 (Alberi rosso-neri ) (a) Si illustri la struttura dati degli alberi rosso-neri. (b) Si definisca l altezza nera di un nodo in un albero rosso-nero. Quindi si enunci una minorazione del numero di nodi interni in un sottoalbero radicato in un nodo x di un albero rosso-nero e la si utilizzi per dimostrare un limite superiore all altezza di un albero rosso-nero con n nodi interni. ESERCIZIO 3 (Visita in profondità) Sia dato il grafo orientato G con insieme di vertici V = {A, B, C, D, E, F, G} e i cui archi sono rappresentati dalle seguenti liste di adiacenza: A! B, C, D C! A F! D, E B! C, D D! E, F Dopo aver descritto l algoritmo di visita in profondità, si e ettui la visita in profondità del grafo G a partire dal vertice A, indicando i tempi di inizio e fine visita per ciascun vertice, e la classificazione di tutti gli archi (es. archi d albero, all indietro, ecc.). Si rappresenti inoltre la foresta DFS ottenuta. (Facoltativo) Si definisca la nozione di componente fortemente connessa (cfc) di un grafo orientato e si descriva un algoritmo per calcolare le cfc di un grafo orientato. Quindi si determinino le cfc del grafo G. ESERCIZIO 4 (Tavole hash) (a) Data la funzione h(x, i) = Def (x +4i) mod 19, si illustri l inserimento delle chiavi 23, 43, 21, 5, 62, 72, 58, 48, 52, 46, 78, 55, 35, 17, 51 in una tabella hash di dimensione 17, inizialmente vuota e organizzata con l indirizzamento aperto, utilizzando h(x, i) come funzione hash. (b) Si enunci l ipotesi di hashing uniforme, si forniscano dei limiti superiori al numero medio di scansioni in ricerche con e senza successo in una tabella hash con fattore di carico, assumendo l ipotesi di hashing uniforme. ESERCIZIO 5 (Programmazione dinamica) Si enunci in dettaglio il problema della moltiplicazione di una sequenza di matrici. Quindi, utilizzando la metodologia della programmazione dinamica, si illustri una soluzione della variante del problema della moltiplicazione di una sequenza di matrici in cui si è interessati a massimizzare il numero di prodotti scalari, piuttosto che a minimizzarlo. Qual è la complessità dell algoritmo trovato in funzione della lunghezza della sequenza di matrici?

4 ANNO ACCADEMICO 2014/15 Prolungamento terza sessione di esami - 17 dicembre 2015 (A) Si enuncino il Teorema Master e il suo Corollario, quindi si risolva la seguente equazione di ricorrenza al variare del parametro b 1: n T (n) = 16 T + n 2b 2 log 2 n. Per quali valori di b si ha: (a) T (n) =O(n 4 ); (b) T (n) = (n 4 ); (c) T (n) = (n 4 ); (d) T (n) =O(n 2 log n)? (B) Si ordinino per tasso di crescita le funzioni n 2 log n, n log 2 n, 2 n n 4, n 2 log n n, n log 4 n. (a) Si enunci l ipotesi di hashing uniforme e si forniscano dei limiti superiori al numero medio di scansioni in ricerche con e senza successo in una tabella hash con fattore di carico, assumendo l ipotesi di hashing uniforme. (b) Si descriva la procedura per l inserimento di una chiave in una tabella hash organizzata con l indirizzamento aperto. ESERCIZIO 3 (Foglio A) Sia T un testo di 1000 caratteri in un alfabeto con dieci caratteri c 1,...,c 10, le cui frequenze sono rispettivamente 10, 10, 30, 30, 30, 70, 100, 120, 200, 400. Dopo aver definito la nozione di codice prefisso, si determini il numero minimo di bit necessari per rappresentare il testo T utilizzando un codice prefisso ottimo, illustrando anche l algoritmo utilizzato. Si descriva l algoritmo Counting Sort (campo di applicazione, pseudocodice, complessità, proprietà, ecc.) e lo si illustri sull array di coppie A =[(9,A), (6,B), (0,C), (9,D), (5,E), (7,F), (0,G), (9,H), (5,I)], da ordinare rispetto alla prima componente. ESERCIZIO 5 (Foglio B) Sia dato il grafo orientato G con insieme di vertici V = {A, B, C, D, E, F, G, H, I, L} e i cui archi sono rappresentati dalle seguenti liste di adiacenza: A! B, L C! B, D E! F G! F I! G, L B! C D! F, I F! H H! E, G L! D (a) Dopo aver descritto l algoritmo di visita in profondità, si e ettui la visita in profondità del grafo G a partire dal vertice A, indicando i tempi di inizio e fine visita per ciascun vertice, e la classificazione di tutti gli archi (es. archi d albero, all indietro, ecc.). Si rappresenti inoltre la foresta DFS ottenuta. (b) Si definisca la nozione di componente fortemente connessa (cfc) di un grafo orientato e si descriva un algoritmo per calcolare le cfc di un grafo orientato. Quindi si determinino le cfc del grafo G.

5 Prima sessione di esami (I appello) 08 febbraio 2016 Si descriva la struttura dati del max-heap binario e si fornisca, con dimostrazione, un limite superiore stretto per l altezza di un heap binario con n nodi. Quindi si descrivano le procedure Max-Heapify e Build-Max-Heap (anche mediante il loro pseudo-codice) e si illustri la procedura Build-Max-Heap sull array C := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]. Infine si descriva l algoritmo Heapsort. A! E, G D! A G! B, D B! C E! F H! C, E C! G F! B, D (a) Dopo aver descritto l algoritmo di visita in profondità (anche con pseudo-codice), si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (b) Si definisca la nozione di componenti fortemente connesse (cfc) di un grafo orientato e si descriva un algoritmo per il loro calcolo, indicandone la complessità computazionale. Quindi si determinino le componenti fortemente connesse del grafo G, utilizzando i risultati della visita già e ettuata per il punto precedente. Sia T un testo di 500 caratteri in un alfabeto con i simboli a 1,...,a 6, le cui frequenze sono rispettivamente 30, 50, 60, 60, 100, 120, 200. Dopo aver definito la nozione di codice prefisso, si determini il numero minimo di bit necessari per rappresentare il testo T utilizzando un codice prefisso ottimo, illustrando l algoritmo utilizzato (anche mediante pseudo-codice). Qual è il risparmio percentuale rispetto ad una codifica minimale di T con un codice a lunghezza fissa? (A) Si enuncino il Teorema Master e il suo Corollario, quindi si risolva la seguente equazione di ricorrenza al variare del parametro reale a 1: n T (n) =a T + n 3 log 3 n. 2 Per quali valori di a si ha: (i) T (n) =O(n 3 log 3 n); (ii) T (n) = (n 3 log 5 n); (iii) T (n) = (n 4 )? (B) Si ordinino per tasso di crescita le funzioni n, n log 2 n, log3 n n, log n, n 2 log 4 n.

6 Prima sessione di esami (II appello) 29 febbraio 2016 Dopo aver enunciato il problema della selezione, si descriva (fornendone anche lo pseudo-codice) un algoritmo e per la sua soluzione, valutandone anche la complessità computazionale. ciente A! B, H D! E, G G! D, H B! C, D E! F, G H! D, F C! A, F F! D, G (A) Si descriva l algoritmo di visita in profondità, fornendone anche lo pseudo-codice e determinandone la complessità computazionale. Quindi si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (B) Si definiscano le componenti fortemente connesse di un grafo orientato e si descriva un algoritmo per il loro calcolo. (C) Si determinino le componenti fortemente connesse del grafo G. (A) Si enuncino il Teorema Master e il suo Corollario. (B) Si definiscano le notazioni asintotiche O(f(n)), (f(n)), (f(n)),!(f(n)) per una data funzione f : N! N. (C) Si risolva l equazione di ricorrenza T (n) =4 T n 2 + n c log 2 n al variare del parametro reale c 1. (D) Sia T (n) la funzione di cui al punto precedente. Per quali valori di c si ha: (i) T (n) = (n); (ii) T (n) =O(n 2 ); (iii) T (n) = (n 2 ); (iv) T (n) =!(n 2 )? Si enunci in dettaglio il problema della moltiplicazione di una sequenza di matrici. Quindi, utilizzando la metodologia della programmazione dinamica, si illustri una soluzione della variante del problema della moltiplicazione di una sequenza di matrici in cui si è interessati a massimizzare il numero di prodotti scalari, piuttosto che a minimizzarlo. Qual è la complessità dell algoritmo trovato in funzione della lunghezza della sequenza di matrici?

7 Seconda sessione di esami (I appello) 20 giugno 2016 Si descriva l algoritmo Counting Sort (campo di applicazione, pseudocodice, complessità, proprietà, ecc.) e lo si illustri sull array di coppie A =[(7,A), (8,B),(0,C),(9,D),(8,E),(7,F),(0,G),(9,H),(8,I),(0,L)], da ordinare rispetto alla prima componente. A! B, C D! C G! D B! A E! D H! G C! D, E, F F! G, H (A) Si descriva l algoritmo di visita in profondità, fornendone anche lo pseudo-codice e determinandone la complessità computazionale. Quindi si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (B) Si definiscano le componenti fortemente connesse di un grafo orientato e si descriva un algoritmo per il loro calcolo. (C) Si determinino le componenti fortemente connesse del grafo G. (A) Si enuncino il Teorema Master e il suo Corollario. (B) Si definiscano le notazioni asintotiche O(f(n)), (f(n)), (f(n)), o(f(n)) per una data funzione f : N! N. (C) Si risolva l equazione di ricorrenza T (n) =a T n 3 + n 2 log 2 n al variare del parametro reale a > 1. (D) Sia T (n) la funzione di cui al punto precedente. Per quali valori del parametro a si ha n 2 log 2 n = o(t (n))? Si consideri la seguente operazione sui numeri naturali, definita da: a b = Def 3a +5b. (a) Si verifichi con un esempio a scelta che l operazione non è associativa. (b) Utilizzando la metodologia della programmazione dinamica, si determini un algoritmo che, data una sequenza di numeri naturali a 1,a 2,...,a n, calcoli il valore massimo che l espressione a 1 a 2 a n può assumere al variare di tutte le possibili parentesizzazioni.

8 Seconda sessione di esami (II appello) 06 luglio 2016 (a) Si illustri la struttura dati del max-heap binario mettendola anche in relazione con la sua rappresentazione con array. (b) Si descrivano le procedure Max-Heapify e Build-Max-Heap e si illustri l azione di Build-Max-Heap sulla sequenza di interi [2, 4, 10, 2, 2, 11, 13, 3, 15, 3]. (c) Si descriva l algoritmo Heapsort. A! B D! A G! C, D, F B! D E! F, G H! D, F C! A, E, H F! B, H (A) Si descriva l algoritmo di visita in profondità, fornendone anche lo pseudo-codice e determinandone la complessità computazionale. Quindi si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (B) Si definiscano le componenti fortemente connesse di un grafo orientato e si descriva un algoritmo per il loro calcolo. (C) Si determinino le componenti fortemente connesse del grafo G. (A) Si enuncino il Teorema Master e il suo Corollario. (B) Si definiscano le notazioni asintotiche O(f(n)), o(f(n)), (f(n)) per una data funzione f : N! N. (C) Si risolva l equazione di ricorrenza T (n) = 64 T n b + n 3 log 3 n al variare del parametro reale b>1. (D) Sia T (n) la funzione di cui al punto precedente. Si stabilisca per quali valori del parametro b si ha (i) T (n) =O(n 3 log 3 n); (ii) T (n) =o(n 3 log 3 n); (iii) T (n) = (n 6 ). Nel contesto della metodologia greedy, si enunci il problema di ottimizzazione relativo alla selezione di attività ese ne discuta una soluzione e ciente, valutandone la complessità computazionale e illustrandola sul seguente insieme S = {a 1,...,a 10 } di attività, caratterizzate dai seguenti tempi iniziali e finali: i s i f i

9 Terza sessione di esami (I appello) 19 settembre 2016 Si descriva l algoritmo Counting Sort (campo di applicazione, pseudocodice, complessità, proprietà, ecc.) e lo si illustri sull array di coppie A =[(5,A), (8,B),(2,C),(9,D),(8,E),(5,F),(2,G),(9,H),(8,I),(2,L)], da ordinare rispetto alla prima componente. A! E, F, G D! G G! C, H B! C, E E! B, G H! C, D C! D F! A, B, H (A) Si descriva l algoritmo di visita in profondità, fornendone anche lo pseudo-codice e determinandone la complessità computazionale. Quindi si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (B) Si definiscano le componenti fortemente connesse di un grafo orientato e si descriva un algoritmo per il loro calcolo. Quindi si determinino le componenti fortemente connesse del grafo G. (A) Si enuncino il Teorema Master e il suo Corollario. (B) Si definiscano le notazioni asintotiche O(f(n)), (f(n)) e (f(n)) per una data funzione f : N! N. (C) Si risolva l equazione di ricorrenza T (n) =9 T n b + n 2 log 3 n al variare del parametro reale b>1. (D) Sia T (n) la funzione di cui al punto precedente. Si stabilisca per quali valori del parametro b si ha (i) T (n) =O(n 3 ); (ii) T (n) = (n 2 log 2 n); (iii) T (n) = (n 2 log 4 n). Sia T un testo di 270 caratteri in un alfabeto con i sette caratteri A, B, C, D, E, F, G, le cui frequenze sono rispettivamente 40, 20, 10, 10, 60, 60, 70. Dopo aver definito la nozione di codice prefisso, si determini il numero minimo di bit necessari per rappresentare il testo T utilizzando un codice prefisso ottimo, illustrando anche dettagliatamente l algoritmo utilizzato. Qual il fattore di compressione ottenuto, relativamente ad una codifica a 3 bit a lunghezza fissa?

10 Terza sessione di esami (II appello) 05 ottobre 2016 Si descriva la struttura dati del max-heap binario e si fornisca, con dimostrazione, un limite superiore stretto per l altezza di un heap binario con n nodi. Quindi si descrivano le procedure Max-Heapify e Build-Max-Heap (anche mediante il loro pseudo-codice) e si illustri la procedura Build-Max-Heap sull array C := [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]. Infine si descriva l algoritmo Heapsort. A! E, G D! C, F G! B, C, D B! G E! H H! A C! F F! D (A) Si descriva l algoritmo di visita in profondità, fornendone anche lo pseudo-codice e determinandone la complessità computazionale. Quindi si e ettui la visita in profondità del grafo G a partire dal vertice A (e poi procedendo lessicograficamente), indicando per ogni vertice i tempi di inizio e fine visita, e la classificazione di tutti gli archi. (B) Si definiscano le componenti fortemente connesse di un grafo orientato e si descriva un algoritmo per il loro calcolo. Quindi si determinino le componenti fortemente connesse del grafo G. Si consideri la seguente operazione sui numeri naturali, definita da: a b = Def 2a +3b. (a) Si verifichi con un esempio a scelta che l operazione non è associativa. (b) Utilizzando la metodologia della programmazione dinamica, si determini un algoritmo che, data una sequenza di numeri naturali a 1,a 2,...,a n, calcoli il valore massimo che l espressione a 1 a 2 a n possa assumere al variare di tutte le possibili parentesizzazioni. (a) Data la funzione h(x, i) = Def (x +2i) mod 17, si illustri l inserimento delle chiavi 55, 38, 59, 87, 68, 70, 62, 52, 33, 47, 79, 30 in una tabella hash di dimensione 17, inizialmente vuota e organizzata con l indirizzamento aperto, utilizzando h(x, i) come funzione hash. Quante collisioni si sono verificate? (b) Si enunci l ipotesi di hashing uniforme. Quindi si forniscano dei limiti superiori al numero medio di scansioni in ricerche con e senza successo in una tabella hash con fattore di carico, assumendo l ipotesi di hashing uniforme.

UNIVERSITA DEGLI STUDI DI PERUGIA

UNIVERSITA DEGLI STUDI DI PERUGIA UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze

Dettagli

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008

T 1 =1. n 4 n log n. T n =3 T. Esercizio 1 (6 punti) A.A Esame di Algoritmi e strutture dati 18 luglio 2008 A.A. 00 0 Esame di Algoritmi e strutture dati luglio 00 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n = T n n log n A.A. 00 0 Esame di Algoritmi

Dettagli

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016 1. Indicare quali delle seguenti affermazioni sono vere e quali sono false. a. n 3 = Θ (n 3log n ) b. n! = Ω(n n ) c. log n = Θ (log( n 2 )) d. n 3 =Ω(n) e. 9 log 3 n = Θ (n) 2. Si dimostri in modo formale

Dettagli

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla

Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di

Dettagli

Algoritmi e Strutture dati a.a. 2012/2013

Algoritmi e Strutture dati a.a. 2012/2013 a.a. 2012/2013 Dr Informazioni docente E-mail docente: maria.federico@unimore.it Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15

Dettagli

Algoritmi e Strutture dati a.a. 2013/2014

Algoritmi e Strutture dati a.a. 2013/2014 a.a. 2013/2014 Dr Informazioni docente E-mail docente: fdrmra@unife.it Ricevimento: Mercoledì 15:00-16:00 presso ufficio docenti a contratto (3 piano), Dipartimento di Matematica e Informatica, Campus

Dettagli

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica

Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti

Dettagli

Algoritmi e Strutture Dati. HeapSort

Algoritmi e Strutture Dati. HeapSort Algoritmi e Strutture Dati HeapSort Selection Sort: intuizioni L algoritmo Selection-Sort scandisce tutti gli elementi dell array a partire dall ultimo elemento fino all inizio e ad ogni iterazione: Viene

Dettagli

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Dettagli

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero);

Heap scenario. Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Heap Heap scenario Ho un insieme dinamico di oggetti, ciascuno identificato con una priorità. (la priorità è semplicemente un numero); Voglio poter: inserire: nuovi elementi, ciascuno con una data priorità

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Emanuela Merelli Università di Camerino 23 ottobre 2017 Struttura del corso Il corso consiste di 42 ore di lezione 2 ore di ricevimento settimanali Il corso viene valutato in 6 CFU

Dettagli

Compressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.

Compressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p. Compressione Dati Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.1/21 Compressione Dati Teorema codifica sorgente: Entropia

Dettagli

Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione totale /5 /6 /4 /25 /15 /20 /25 /100

Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione totale /5 /6 /4 /25 /15 /20 /25 /100 Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 5 6 7 totale 1. Indicare quali delle seguenti affermazioni sono vere e quali sono false. a. n 3 +n 2 +4 = Θ (n 3 ) b. n! =

Dettagli

Esercizi per il corso di Algoritmi

Esercizi per il corso di Algoritmi 1 Esercizi per il corso di Algoritmi Esercizi sulla Tecnica Programmazione Dinamica 1. Esercizio: Si consideri la seguente variante del problema dello Zaino 0/1. L input é costituito da n oggetti a 1...,a

Dettagli

Esempi. non. orientato. orientato

Esempi. non. orientato. orientato Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

Programmazione Greedy I codici di Huffman

Programmazione Greedy I codici di Huffman Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice

Dettagli

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)

Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill) Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base

Dettagli

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso

Dettagli

carattere a b c d e f cod. var

carattere a b c d e f cod. var Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un altra Ogni codice a lunghezza fissa è ovviamente prefisso. Ma anche il codice a lunghezza variabile

Dettagli

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su

Dettagli

ADT Coda con priorità

ADT Coda con priorità Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni

Dettagli

Progettazione di algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 15 Novembre Attenzione:

Progettazione di algoritmi. Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo. Appello del 15 Novembre Attenzione: COGNOME: Nome: Progettazione di algoritmi Classe 3 (matricole congrue 2 modulo 3) Prof.ssa Anselmo Appello del 15 Novembre 2016 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante.

Dettagli

Esercizi Capitolo 7 - Hash

Esercizi Capitolo 7 - Hash Esercizi Capitolo 7 - Hash Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum

Dettagli

Teoria dell informazione

Teoria dell informazione Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2008-09 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di

Dettagli

TRIE (albero digitale di ricerca)

TRIE (albero digitale di ricerca) TRIE (albero digitale di ricerca) Struttura dati impiegata per memorizzare un insieme S di n stringhe (il vocabolario V). Tabelle hash le operazioni di dizionario hanno costo O(m) al caso medio per una

Dettagli

Introduzione alla gestione delle collezioni di oggetti

Introduzione alla gestione delle collezioni di oggetti Introduzione alla gestione delle collezioni di oggetti Alcune tecniche di base Un esempio: l ADT Dizionario (mutabile) Un esempio: l ADT Pila (mutabile) Un esempio: l ADT Coda (mutabile) Tecniche di rappresentazione

Dettagli

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati

Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica. Modulo di Laboratorio di Algoritmi e Strutture Dati Università degli Studi di L Aquila Facoltà di Scienze M.F.N. Corso di Laurea in Informatica Modulo di Laboratorio di Algoritmi e Strutture Dati Alberi binari Giovanna Melideo melideo@di.univaq.it 1 Alberi

Dettagli

Grafi: definizioni e visite

Grafi: definizioni e visite Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della

Dettagli

Visite in Grafi BFS e DFS

Visite in Grafi BFS e DFS Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati

Dettagli

algoritmi e strutture di dati

algoritmi e strutture di dati algoritmi e strutture di dati introduzione al corso maurizio patrignani roberto de virgilio algoritmi e strutture di dati nuovo ordinamento (d.m. 509/99) laurea in ingegneria informatica 2 anno 5 crediti

Dettagli

TABELLE AD INDIRIZZAMENTO DIRETTO

TABELLE AD INDIRIZZAMENTO DIRETTO Tabelle Servono per implementare dizioniari in modo efficiente. dizionari insiemi di coppie (chiave, valore). Esempio: in un compilatore di un linguaggio di programmazione viene creata una tabella dei

Dettagli

Elementi di Complessità Computazionale

Elementi di Complessità Computazionale Elementi di Complessità Computazionale Ultima modifica 23.06.2004 Il problema Esiste una misura oggettiva per valutare l'efficienza di un algoritmo? In che relazione sono gli input di un algoritmo con

Dettagli

Lezione 5. Giuditta Franco. 19 Febbraio 2008

Lezione 5. Giuditta Franco. 19 Febbraio 2008 Outline Lezione 5 Dipartimento di Informatica, Università di Verona 19 Febbraio 2008 Talk Outline Outline 1. 2. 3. Come costruire un Un esempio introduttivo L albero dei suffissi di una data stringa è

Dettagli

Esercitazione 4 Algoritmi greedy

Esercitazione 4 Algoritmi greedy Esercitazione 4 Algoritmi greedy Problema 9 (es.2 appello 18/02/2016 modulo 2) Nel museo Tor VerLouvre c è un lungo corridoio rettilineo in cui sono esposti n quadri nelle posizioni 0 q 1 < q 2 < q 3

Dettagli

Esercizio 1. min. Esercizio 2. Esercizio 3

Esercizio 1. min. Esercizio 2. Esercizio 3 A UNIVERSIÀ DEGLI SUDI ROMA RE Ricerca Operativa Primo appello gennaio 00 Esercizio Portando il problema in forma standard si aggiungono le variabili e 4. Impostando il problema artificiale è sufficiente

Dettagli

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114

In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114 In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare alfabeticamente lista di nomi, o insieme

Dettagli

Tecniche Algoritmiche: divide et impera

Tecniche Algoritmiche: divide et impera Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani

Dettagli

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy Il paradigma greedy Paolo Camurati, Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Definizioni Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente:

Dettagli

Ordinamenti per confronto: albero di decisione

Ordinamenti per confronto: albero di decisione Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto

Dettagli

Tempo e spazio di calcolo

Tempo e spazio di calcolo Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare

Dettagli

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I

ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]

Dettagli

Ordinamento per inserzione e per fusione

Ordinamento per inserzione e per fusione Ordinamento per inserzione e per fusione Alessio Orlandi 15 marzo 2010 Fusione: problema Problema Siano A e B due array di n A e n B interi rispettivamente. Si supponga che A e B siano ordinati in modo

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai

Dettagli

Grafi: ordinamento topologico

Grafi: ordinamento topologico .. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,

Dettagli

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi

Dettagli

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04

COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 COMPITO DI RICERCA OPERATIVA APPELLO DEL 08/01/04 Esercizio 1 Si risolva con il metodo branch-and-bound il seguente problema di PLI max x 1 + x 4x 1 + x + x = 0 x 1 + x + x 4 = x 1, x, x, x 4 0 x 1, x,

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

Dettagli

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione

Principali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 12 LA COMPLESSITA COMPUTAZIONALE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Dettagli

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza vale sse D l i = p i.. p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza

Dettagli

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale Terzo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 22 marzo 2016 Programma 1. Lettura di un problema tratto dalle

Dettagli

Heap Ordinamento e code di priorità. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 9

Heap Ordinamento e code di priorità. Ugo de' Liguoro - Algoritmi e Sperimentazioni 03/04 - Lez. 9 Heap Ordinamento e code di priorità Heap: definizione Definizione. Uno Heap (binario) è un albero binario finito i cui vertici sono etichettati da elementi di un insieme linearmente ordinato (chiavi),

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ Heap e Heapsort Algoritmi di ordinamento Insertion Sort Quicksort Heapsort Insertion Sort L

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Esercizi di Programmazione Lineare - Dualità

Esercizi di Programmazione Lineare - Dualità Esercizi di Programmazione Lineare - Dualità Esercizio n1 Dato il seguente problema 3 + 3 2 2 + a scriverne il duale; b risolvere il duale (anche geometricamente indicando cosa da esso si può dedurre sul

Dettagli

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet francesc

Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet  francesc Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Tabelle hash Una tabella hash (in inglese hash

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Cammini minimi in grafi:

Cammini minimi in grafi: Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2014/15

Esercizi per il corso di Algoritmi, anno accademico 2014/15 1 Esercizi per il corso di Algoritmi, anno accademico 2014/15 Esercizi sulla Tecnica Programmazione Dinamica Per la risoluzione degli esercizi di Programmazione Dinamica si richiede che venga innanzitutto

Dettagli

Dizionari. Hashtables.

Dizionari. Hashtables. Dizionari Hashtables http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione I tipi di dato che abbiamo introdotto fino ad ora sono

Dettagli

Grafi pesati Minimo albero ricoprente

Grafi pesati Minimo albero ricoprente Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene

Dettagli

Corso di Laurea in Informatica Sede di Brindisi Esame di Analisi Matematica 25 giugno ex+1 x 2 2x. f (x) =

Corso di Laurea in Informatica Sede di Brindisi Esame di Analisi Matematica 25 giugno ex+1 x 2 2x. f (x) = 25 giugno 215 f (x) = ex+1 x 2 2x 2. Si calcoli il seguente integrale: 4 2 x log(x 2 1) dx. 3. Si enunci la definizione di funzione continua. 4. Si enunci il teorema di Fermat e, facoltativamente, lo si

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Applicazioni di DFS Due prolemi: calcolare l ordinamento topologico indotto da un grafo aciclico.

Dettagli

Note per la Lezione 4 Ugo Vaccaro

Note per la Lezione 4 Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 7 Tabelle hash Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Implementazioni Dizionario Tempo richiesto dall operazione più costosa: -Liste - Alberi di ricerca

Dettagli

Esame di geometria e algebra

Esame di geometria e algebra Laurea Ing. 26 febbraio 2007 Traccia I COG 1 In R 3 sono assegnati i vettori: u 1 = (2, h, 0), u 2 = (1, 0, h), u 3 = (h, 1, 2). Stabilire se esistono valori reali del parametro h per cui S = {u 1, u 2,

Dettagli

Algoritmi e strutture dati

Algoritmi e strutture dati Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di

Dettagli

Algoritmi e Principi dell Informatica

Algoritmi e Principi dell Informatica Algoritmi e Principi dell Informatica Appello del 20 Febbraio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2h e 30 Chi deve sostenere solo il modulo di Informatica

Dettagli

Alberi e alberi binari I Un albero è un caso particolare di grafo

Alberi e alberi binari I Un albero è un caso particolare di grafo Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra

Dettagli

TEORIA DELL INFORMAZIONE ED ENTROPIA FEDERICO MARINI

TEORIA DELL INFORMAZIONE ED ENTROPIA FEDERICO MARINI TEORIA DELL INFORMAZIONE ED ENTROPIA DI FEDERICO MARINI 1 OBIETTIVO DELLA TEORIA DELL INFORMAZIONE Dato un messaggio prodotto da una sorgente, l OBIETTIVO è capire come si deve rappresentare tale messaggio

Dettagli

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);

Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici); Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo

Dettagli

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.

Richiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Richiami di Matematica 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Insiemi Definizioni di base Dato un insieme A: x A: elemento x appartenente

Dettagli

T 1 =1. n 6 n. T n =3 T. Esercizio 1 (6 punti)

T 1 =1. n 6 n. T n =3 T. Esercizio 1 (6 punti) A.A. 7 8 Esame di Algoritmi e strutture dati 9 luglio 8 Esercizio (6 punti) Risolvere con almeno due metodi diversi la seguente relazione di ricorrenza T = T n =3 T n 6 n A.A. 7 8 Esame di Algoritmi e

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli

Dettagli

Grafi (non orientati e connessi): minimo albero ricoprente

Grafi (non orientati e connessi): minimo albero ricoprente Grafi (non orientati e connessi): minimo albero ricoprente Una breve presentazione Definizioni Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è

Dettagli

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi

Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina) Esercizi sugli Alberi Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1 Dimostrare che un albero non vuoto con n nodi interni, dove ogni nodo interno ha almeno

Dettagli

PROVETTE D ESAME. Algoritmi e Strutture Dati

PROVETTE D ESAME. Algoritmi e Strutture Dati PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento

Dettagli

Massimo Benerecetti Tabelle Hash: gestione delle collisioni

Massimo Benerecetti Tabelle Hash: gestione delle collisioni Massimo Benerecetti Tabelle Hash: gestione delle collisioni # Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Algoritmi e Strutture Dati I Email Docente: bene@na.infn.it A.A. 2009-2010

Dettagli

Dizionario. Marina Zanella Algoritmi e strutture dati Tabelle hash 1

Dizionario. Marina Zanella Algoritmi e strutture dati Tabelle hash 1 Dizionario Insieme dinamico che offre solo le seguenti operazioni: inserimento di un elemento dato cancellazione di un elemento dato ricerca di un elemento dato (verifica dell appartenenza di un elemento

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale Quarto allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 30 marzo 2017 Programma 1. Lettura e analisi di un problema 2.

Dettagli

Strutture di accesso ai dati: B + -tree

Strutture di accesso ai dati: B + -tree Strutture di accesso ai dati: B + -tree A L B E R T O B E L U S S I S E C O N D A P A R T E A N N O A C C A D E M I C O 2 0 0 9-2 0 0 Osservazione Quando l indice aumenta di dimensioni, non può risiedere

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra

Dettagli