Esame del 22 Luglio 2002 - Dipartimento di Ingegneria informatica

annuncio pubblicitario
Esame di Algoritmi e Strutture Dati
Corso di Laurea in Ingegneria Informatica
Canale M-Z
Anno Accademico 2001/2002
Prof. Stefano Leonardi
22 Luglio 2002
Domanda 1, Punti 5.
1. Si consideri il seguente array:
7
4
1
15
3
6
10
2
Si illustri l’esecuzione dell’algoritmo Quick Sort che sceglie come pivot il primo elemento su tale
array.
Domanda 2, Punti 5. Dsi descriva l’esecuzione di un algoritmo di ricerca di un elemento in un
insieme ordinato attraverso gli alberi di decisione e si dimostri usando tale formalismo un lower
bound sulla complessita’ di un algoritmo basato su confronti per la soluzione del problema.
Domanda 3, Punti 5. Si implementino i metodi Java per la ricerca, la cancellazione e l’inserimento
di elementi rappresentati da chiavi intere positive non nulle in una tabella hash i cui conflitti sono
gestiti attraverso il metodo della scansione lineare.
Si assuma la funzione hash implementata da un metodo Integer h(int key) e la tabella memorizzata
in un array int[] table di dimensione n. La generica posizione h[i] assume il valore della chiave ivi
memorizzata, 0 se nessun elemento e’ memorizzato nella locazione i, oppure il valore –1 se un
elemento e’ stato memorizzato nella posizione i ed in seguito cancellato.
Domanda 4, Punti 5. Quante operazioni di ribilanciamento sono necessarie per l’inserimento di un
elemento in un albero AVL? Si motivi formalmente la risposta.
Domanda 5, Punti 5. Si descriva l’esecuzione di un algoritmo per la determinazione delle
componenti fortemente connesse nel seguente grafo.
b
a
c
d
i
h
e
g
f
Domanda 6, Punti 5. Si descriva la costruzione di un heap di n elementi in tempo O(n) a partire
dall’array in figura. Gli elementi di valore maggiore hanno piu’ alta priorita’.
7
4
18
15
3
6
10
9
22
2
12
5
20
1
16
14
Scarica