• Non ci sono risultati.

008AA – ALGORITMICA E LABORATORIO

N/A
N/A
Protected

Academic year: 2021

Condividi "008AA – ALGORITMICA E LABORATORIO"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO Appello del 24 giugno 2019

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1 (punti 2 + 6 )

Si consideri il problema decisionale Bisezione di grafi:

Dati un grafo non orientato G = (V, E) e un intero positivo k, esiste una partizione dell’insieme V in due sottoinsiemi disgiunti V1 e V2, di |V |/2 vertici ciascuno, tale che il numero di archi con un estremo in V1 e l’altro in V2 non supera k?

Si dimostri che il problema appartiene alla classe NP, indicando:

1. un certificato polinomiale per il problema,

2. un algoritmo di verifica polinomiale (si scelga liberamente la rappresentazione del grafo in memoria).

Esercizio 2 (punti 6)

Dato un array di interi A[1, n], progettare e descrivere in pseudocodice un algoritmo efficiente per stampare tutti gli indici i e j tali che A[j] = 2A[i]. La complessit`a dell’algoritmo al caso medio deve essere lineare.

Suggerimento: utilizzare un dizionario.

Esercizio 3 (punti 6)

Dato un array di interi A[1, n], progettare e descrivere in pseudocodice un algoritmo di ordinamento che controlli preventivamente se convenga usare o meno COUNTING-SORT. In caso positivo si ordini l’array con COUNTING-SORT, altrimenti con un altro algoritmo ottimo di ordinamento. Si indichi la complessit`a dell’algoritmo proposto.

Esercizio 4 (punti 2 + 3 + 1) Data la sequenza di chiavi intere

7, 1, 4, 2, 6, 3, 5 1. costruire un albero binario di ricerca per inserzioni successive;

2. costruire un albero AVL per inserzioni successive, disegnando l’albero dopo l’inserzione di ogni chiave e indicando, prima di ogni rotazione, il nodo critico e la rotazione eseguita;

3. cancellare il nodo di chiave 4 dall’albero binario di ricerca costruito al punto 1.

Esercizio 5 (punti 2 + 3 )

Si indichi la complessit`a in tempo al caso medio della ricerca con insuccesso all’interno di una tabella hash con n elementi e dimensione m, in cui le collisioni sono gestite con concatenamento, e se ne dimostri la correttezza.

Riferimenti

Documenti correlati

(4+3+3 punti) Si progetti un algoritmo ricorsivo basato sulla tecnica Divide et Impera che calcola il secondo elemento pi` u grande di un vettore A di n interi, senza modificarlo..

(4+4) Si definisca la relazione che consente di calcolare mediante Programmazione Dinamica la Edit Distance di due stringhe S1 e S2, nell’ipotesi che l’errore di mismatch abbia costo

• Si diano le regole per navigare sull’heap ternario, cio` e le regole per cui, dato il nodo i, si possa accedere direttamente ai 3 figli o al padre.. • Si fornisca l’algoritmo

Dato un albero binario T in cui ogni nodo contiene un intero positivo, diciamo che la media di un sottoalbero non vuoto ` e la somma degli interi contenuti nei suoi nodi diviso

Dato un albero binario T di n nodi, scrivere lo pseudocodice di un algoritmo efficiente che restituisce TRUE se per ogni nodo u di T vale la seguente propriet` a: il

Lo pseudocodice della procedura split , richiamata su un nodo con ⇣ figli, `e inoltre mostrato in Figu- ra 6.23 (lo pseudocodice non mostra come aggiornare i campi ed ⇥ di ciascun

In caso di risposta affermativa al punto 2, disegnare l’albero di decisione corrispondente all’algoritmo trovato che risolve il problema con due

Un grafo non orientato ` e detto 2-colorabile se ` e possibile attribuire a ogni vertice uno tra due colori in modo che vertici adiacenti siano colorati con colori distinti..