• 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 Primo Compitino, 31 Marzo 2016

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. (12 punti)

E dato un array ordinato A[1..n] contenente n elementi interi distinti appartenenti all’intervallo [1, n + 1]. Si` vuole determinare l’intero mancante.

1. Descrivere (in pseudocodice) un algoritmo di complessit`a O(n) e si fornisca l’analisi del caso ottimo, medio e pessimo.

2. Descrivere (in pseudocodice) un algoritmo Divide et Impera di complessit`a Θ(log n).

3. Sia k l’intero mancante, descrivere (in pseudocodice) un algoritmo di complessit`a Θ(log k).

Esercizio 2. (9 punti)

Considerare la seguente variante del MergeSort in cui una delle due chiamate ricorsive `e sostituita da una chiamata al QuickSort:

MergeSort2(a, sx, dx) if (sx < dx) {

cx = (sx + dx) / 2 MergeSort2(a, sx, cx) QuickSort(a, cx+1, dx) Merge(a, sx, cx, dx) }

Determinare il tempo di esecuzione dell’algoritmo MergeSort2 al caso pessimo, giustificando la risposta fornita.

Esercizio 3. (9 punti)

Siano date n monete d’oro tutte dello stesso peso, tranne una che `e pi`u leggera delle altre, e una bilancia a due piatti, su ciascuno dei quali `e possibile mettere un numero qualunque di monete e sapere se i piatti hanno lo stesso peso, o quale dei due `e pi`u leggero.

1. Descrivere un algoritmo per trovare la moneta pi`u leggera delle altre che richieda O(log n) pesate al caso pessimo.

2. Nel caso particolare in cui n = 9 `e possibile risolvere il problema con due sole pesate?

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

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

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