• 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 5 settembre 2017

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. [3+5 punti]

Data la seguente funzione ricorsiva foo( n )

{

if ( n <= 1 ) return 5;

else if ( n % 2 == 1 ) return 1+foo( n-1 );

else return 2+foo( n/2 );

}

1. Simulare il suo funzionamento sul valore n = 19.

2. Calcolare la complessit`a in tempo al caso pessimo risolvendo la relativa equazione di ricorrenza.

Esercizio 2. [6+2 punti]

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 il numero di tali nodi; se il sottoalbero `e vuoto, la media si assume essere pari a zero.

Scrivere lo pseudocodice di un algoritmo ricorsivo che, preso in ingresso la radice di T , restituisce la radice del sottoalbero la cui media `e massima rispetto a quella degli altri sottoalberi, e se ne valuti la complessit`a in tempo al caso pessimo. (Si assuma che il sottoalbero di media massima `e unico.)

Esercizio 3. [6+2 punti]

Dato un grafo non orientato e connesso G = (V, E), un arco (u, v) `e un ponte se la sua rimozione divide il grafo in due componenti connesse. Scrivere lo pseudocodice di un algoritmo che trova, se esiste, un ponte in G, e se ne valuti la complessit`a in tempo al caso pessimo.

Esercizio 4. [4+2 punti]

Il problema exact cover richiede di stabilire se, data una collezione di insiemi S = {S1, S2, . . . , Sm} ciascuno sottoinsieme dell’intervallo [1, n] dei primi n interi positivi, esiste una famiglia di sottoinsiemi di S, a due a due disgiunti e tali che la loro unione `e uguale a tutto l’intervallo [1, n].

Scrivere lo pseudo-codice di una procedura che verifica se una data famiglia di insiemi S⊆ S `e un exact cover per [1, n] e se ne valuti la complessit`a in tempo al caso pessimo. Si assuma che la procedura riceve in input una matrice binaria m × n tale che S[i, j] = 1 sse l’insieme Si contiene l’intero positivo j, e un vettore binario V [1, m] tale che V [k] = 1 sse il sottoinsieme Sk fa parte della famiglia S.

Riferimenti

Documenti correlati

Calcolare la visita DFS su G e si mostri l’albero DFS specificando anche il tipo di archi individuati dalla visita (ossia dell’albero, indietro, in avanti, attraversamento – o

(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 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..