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.