• Non ci sono risultati.

008AA – ALGORITMICA E LABORATORIO-A

N/A
N/A
Protected

Academic year: 2021

Condividi "008AA – ALGORITMICA E LABORATORIO-A"

Copied!
2
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO-A Prima Prova di Verifica Intermedia - 1 aprile 2019

Cognome Nome: N. Matricola:

Esercizio 1 (punti 6)

[La soluzione corretta di questo esercizio `e requisito per la correzione del resto del compito]

Si scrivano lo pseudocodice di QuickSort (omettendo quello di Partiziona) e la relazione di ricorrenza che ne descrive la complessit`a in tempo al caso ottimo, motivando la risposta. Si risolva infine la suddetta relazione di ricorrenza.

Esercizio 2 (punti 6)

Un array A di n interi distinti si definisce ciclicamente ordinato se esiste un indice i, 1 ≤ i ≤ n, tale che la sequenza a[i], a[i + 1], . . . , a[n], a[1], . . . , a[i − 1] `e ordinata in modo crescente. Ad esempio, l’array A = [12, 14, 20, 1, 3, 7, 10, 11] `e ciclicamente ordinato per i = 4. Si consideri il problema di trovare la posizione i.

Scrivere lo pseudocodice di un algoritmo efficiente di tipo Divide et impera per il problema precedente.

Calcolare la complessit`a al caso pessimo dell’algoritmo proposto indicando, e risolvendo, la corrispondente relazione di ricorrenza.

Esercizio 3 (punti 6)

Si mostrino i passaggi dell’esecuzione dell’Algoritmo BuildMaxHeap sul vettore di interi A=[13,1,40,18,2,10,9,20,5].

In particolare si mostri (i) per ogni iterazione, l’albero e i nodi a vario titolo coinvolti, e (ii) il vettore A risultante al termine dell’esecuzione.

Esercizio 4 (punti 6)

Si scriva la relazione di ricorrenza che descrive la complessit`a in tempo del seguente algoritmo la cui chiamata iniziale `e Boh-Sort(A,1,n), e K un intero noto. Si confrontino poi, motivando la risposta, le complessit`a asintotiche di Boh-Sort(A,n) e di SelectionSort(A,n) al variare dell’intero K.

Boh-Sort(A,p,r) if (p < r) then

{

q=(p+r)/2;

Boh-Sort(A,p,q);

if (q-p+1) < K

SelectionSort(A,p,q);

else

Boh-Sort(A,p,q);

MERGE(A,p,q,r);

}

Esercizio 5 (punti 3)

Un ABCB (Albero Binario Completamente Bilanciato o Completo) `e un albero binario in cui tutti i nodi, eccetto le foglie, hanno esattamente due figli, e le foglie si trovano tutte allo stesso livello. Si dimostri per induzione su d che un ABCB di profondit`a d ha 2d+1− 1 nodi.

(2)

Esercizio 6* (punti 3)

[Si consiglia di risolvere questo esercizio per ultimo.]

Sia

g(n) =

logbn−1

X

j=0

ajf (n/bj),

con a e b costanti positive. Si dimostri che, se f (n) = O(nlogba−) per qualche costante  > 0, allora g(n) = O(nlogba).

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