Esame di Algoritmi e Strutture Dati 7 Settembre 2009 Compito A Studente:________________________________ ______________ Matricola:________________________ Corso di Laurea:________________________________________________ ________ β‘ 6 cfu β‘ 9 cfu PARTE I. Domande di sbarramento. Rispondere correttamente alle seguenti domande. Una risposta erronea determinerà il fallimento della prova. 1) Qual è la complessità di calcolo nel caso migliore dell’algoritmo di ordinamento insertion-sort? ____________ 2) Convertire in base due l'intero 24 (scritto in base dieci):_____________ 3) Quali di queste affermazioni sono corrette: a) π3 − 470π + log 2π = Ω n2 b) 12 π5 + 2π + log π = Θ n7 c) ππ + π = O π π4 + d) π3 = Ω π3 PARTE II Rispondere alle seguenti domande 4) Qual è la complessità media dell’algoritmo randomized-selection? _____________________ 5) Sia πΊ = (π, πΈ) un grafo orientato. Si definisca il grafo trasposto πΊ π : _________________________________________________________________________________ 6) Sia G = (V,E) un grafo orientato. Si dimostri che G è aciclico se e solo se la visita in profondità DFS(G) non produce archi all’indietro: __________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ 7) Un tableau di Young è una matrice m x n tale che: i) Gli elementi della matrice sono numeri interi oppure ∞ ii) Ogni riga è ordinata in senso crescente da sinistra a destra iii) Ogni colonna è ordinata in senso crescente dall’alto in basso a) Si disegni un tableau di Young 3x3, contenente i numeri 9,16,4,3,1,7,5,14, ∞ b) Sia Y un tableau di Young di dimensione mxn. Si dica in quale posizione della matrice si trova l’elemento minimo. ___________________________________________ c) Sia Y un tableau di Young di dimensione mxn. Mostrare che Y non contiene elementi finiti (cioè elementi diversi da ∞) se e solo se Y[1,1] = ∞. ______________________________________ _________________________________________________________________________________ _________________________________________________________________________________ d) Sia Y un tableau di Young di dimensione mxn. Mostrare che Y non contiene ∞ se e solo se Y[m,n] < ∞. _______________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ 8) (non per 6 cfu) Si consideri l’implementazione mediante alberi quick-find di una struttura dati unionfind per mantenere una collezione di insiemi disgiunti. a) Si definiscano gli alberi quick-find e si spieghino le operazioni di union e di find: _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ _________________________________________________________________________________ ______________________________________________ b) Spiegare in cosa consiste l’euristica di bilanciamento per union, nel caso di alberi quick-find: _________________________________________________________________________________ ___________________________________________________________________ c) Qual è la complessità di m operazioni, di cui n make-set, nel caso di alberi quick-find con euristica di bilanciamento per union? ______________________ PARTE III Risolvere i seguenti esercizi, nella parte di foglio sottostante 9) Sia Y un tableau di Young di dimensione m x n. Si consideri il problema di rimuovere l’elemento minimo di Y e di sostituirlo con ∞, preservando le proprietà di ordinamento del tableau. Si dia un algoritmo ricorsivo, che richiama se stesso su un’istanza di dimensione (m-1) x n o m x (n-1), che risolve questo problema in tempo π(π + π). Si dimostri il limite sulla complessità scrivendo e risolvendo l’equazione di ricorrenza per l’algoritmo proposto. Suggerimento: si pensi alle Heap. Nota: si possono utilizzare istruzioni che richiamano funzioni viste a lezione e anche brevi frasi. (solo per studenti di informatica, ingegneria informatica e matematica) 10) Sia Y un tableau di Young di dimensione m x n, non contenente alcuna occorrenza di ∞. Si dia un algoritmo che ordina gli mn numeri di Y e li memorizza in un array A di dimensione mn. Nota: si possono utilizzare istruzioni che richiamano funzioni viste a lezione e anche brevi frasi.