Laurea in Informatica Prima Prova Parziale di Algoritmi e Strutture Dati

Download Report

Transcript Laurea in Informatica Prima Prova Parziale di Algoritmi e Strutture Dati

Università degli Studi di Camerino – Laurea in Informatica
Prima Prova Parziale di Algoritmi e Strutture Dati - A Docente: Emanuela Merelli
facsimile - 2017
Nome:
Cognome:
N.Matricola:
1. (5 points) Dare la definizione di Heap e descrivere la procedura MaxHeapfy. Quindi scrivere l’equazione
ricorsiva soddisfatta dal suo costo computazionale, risolverla e scrivere il suo costo computazionale.
2. (5 points) Dato un insieme con n elementi sui quali è definita una relazione di ordine, descrivere l’algoritmo
QuickSort. Definire la ricorrenza che descrive il costo dell’algoritmo e discutere il caso migliore, il caso
medio e quello peggiore in funzione del numero di elementi dell’insieme da ordinare. Dare la soluzione
utilizzando il teorema Master.
3. (3 points) Si consideri l’array di numeri A = {3, 9, 8, 2, 4, 6, 7, 5}, si scelga una procedura Partition e si
discuta la complessità dell’algoritmo QuickSort(A, 1, 8) rispetto alla sequenza di input A. Si risolva il
problema e si determini il numero di chiamate ricorsive.
4. (3 points) Si consideri una tabella hash di dimensione m = 10 inizialmente vuota. Si mostri il contenuto
della tabella dopo aver inserito la seguente sequenza di valori 34, 22, 16, 39, 26, 64, 67, 17, 5, 45. Si
assuma che le collisioni vengano gestite mediante indirizzamento aperto utilizzando come funzione hash
h(k, i) = (h0 (k) + 3i + i2 ) mod m dove la funzione hash ordinario h0 (k) = k mod m.
5. (4 points) Quale ‘e il numero di foglie di un albero binario completo di altezza h. Fornire una dimostrazione
per induzione su h del valore proposto.
6. (3 points) Definire un algoritmo ricorsivo per la visita in profondità di un albero binario a partire da un
generico nodo r.
7. (5 points) Definire un albero AVL. Qual è la caratteristica di un albero AVL che rende la sua altezza
logaritmica nel numero dei nodi? Quanto costano in tempo computazionale le operazioni di Insert, Delete
e Search? Quali sono le implicazioni del fatto che h = O(log n), dove h ed n sono rispettivamente l’altezza
ed il numero di nodi di un AVL?
8. (4 points) Creare un grafo G = (N, V ) con N = 6 nodi e V = 10 archi; descrivere l’algoritmo di visita in
ampiezza per il grafo G.
9. (5 points) Dato un vertice s di un grafo G, con n vertici ed m archi, quanti possono essere al più i vertici
di G diversi da s ed adiacenti a s? Quale è la lunghezza massima di un ciclo semplice in H? Dimostrare
per induzione la risposta data alla domanda (b).
10. (5 points) Si consideri il seguente grafo orientato. Utilizzare l’algoritmo di Dijkstra per determinare i
cammini minimi dalla sorgente s.
1
4
a
d
9
4
5
s
2
b
8
e
3
2
g
7
1
f
c
11. (5 points) Dato un qualsiasi grafo non orientato G, quale delle seguenti affermazioni è falsa?
1. Può esistere più di un cammino minimo tra due vertici del grafo
2. Dato un vertice v di G, l’albero dei cammini minimi di radice v non è necessariamente unico
3. Un minimo albero ricoprente di G è sempre uguale ad un albero dei cammini minimi di G
4. L’albero dei cammini minimi di G non è sempre definito per qualsiasi vertice v in G
12. (5 points) Si consideri il seguente grafo non orientato. Utilizzare l’algoritmo di Kruskal per determinare il
minimo albero ricoprente.
4
a
11
8
8
b
c
2
i
7
h
7
d
4
14
6
1
g
2
9
e
10
f
Question:
1
2
3
4
5
6
7
8
9
10
11
12
Total
Points:
5
5
3
3
4
3
5
4
5
5
5
5
52
Score:
Page 2