• Non ci sono risultati.

(8 punti) Si consideri un array A di n chiavi

N/A
N/A
Protected

Academic year: 2021

Condividi "(8 punti) Si consideri un array A di n chiavi"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO Primo Appello, 12 Giugno 2013

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. (6 punti)

Si consideri un array S di n chiavi intere.

• Si dia il codice di un algoritmo che con un’unica scansione di S conti il numero r di chiavi distinte in S.

Usare un dizionario D inizialmente vuoto (non interessa l’implementazione di D).

• Facendo l’assunzione che D sia implementato come un array ordinato, si analizzi la complessit`a in funzione di n e del numero r di chiavi distinte.

Esercizio 2. (8 punti) Si consideri un array A di n chiavi.

• Si dia il codice di un algoritmo Divide et Impera per la ricerca di una chiave k, ove la ripartizione in due sotto-array avvenga tramite la selezione casuale di una posizione dell’array.

• Si analizzi la complessit`a al caso pessimo e al caso medio.

(suggerimento: per l’analisi al caso medio si ricorra ad argomenti simili a quelli usati per valutare la versione randomizzata di QuickSort).

Esercizio 3. (8 punti) E dato un grafo G = (V, E) memorizzato con liste di adiacenza e un suo vertice s.` Nell’ipotesi che G sia non orientato, connesso e privo di cicli, cio`e un albero, si scriva il codice di un algoritmo che lo trasformi in un albero binario (immagine binarizzata dell’albero G) di radice s.

Esercizio 4. (8 punti) Il problema chiamato SET COVER `e il seguente: data una famiglia F = F1, . . . , Fp

di sottoinsiemi di un insieme S, e dato un intero k, stabilire se esiste una sottofamiglia F0 ⊆ F composta da al pi`u k sottoinsiemi che copra tutti gli elementi di S, tale cio`e che S

T ∈F0T = S. Ad esempio, l’istanza S = {1, 2, 3, 4, 5}, k = 2 e F = {{1, 2, 3}, {2, 4}, {3, 4}, {4, 5}} del problema SET COVER `e accettabile, in quanto la sottofamiglia F0 composta dai due sottoinsiemi {1, 2, 3} e {4, 5} copre tutto S.

Dimostrare che il SET COVER∈ N P , cio`e fornire un algoritmo di verifica polinomiale (certificato).

Riferimenti

Documenti correlati

In prima analisi le tecnologie PV si possono dividere in due grandi branche: quelle che sfruttano il silicio - l’elemento più abbondante della crosta terrestre - e le altre

costruire un albero binario di ricerca Marco Lapegna – Laboratorio di Programmazione 2 Cenni agli alberi. procedura ricerca(in: radice, e;

una quercia. A  su per il tronco di  si stava arrampicando  tutto sudato e sporco da  scuola, 

[r]

[r]

Sembravano tutti aspettare qualcosa e visto che tutti erano tranquilli Il cerbiatto pensò che fosse normale per gli esseri umani avere gli alberi dentro casa!. Così pensando

Dato un albero binario, progettare un algoritmo efficiente che stampi le chiavi di tutti e soli i nodi 0-bilanciati e analizzarne la complessit` a..

Per il problema dell’esercizio 2, M AXCU T sia dia il codice di un algoritmo che individua la soluzione ottima facendo tutte le