• Non ci sono risultati.

008AA – ALGORITMICA E LABORATORIO-B

N/A
N/A
Protected

Academic year: 2021

Condividi "008AA – ALGORITMICA E LABORATORIO-B"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO-B 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 MergeSort (omettendo quello di Merge) e la relazione di ricorrenza che ne descrive la complessit`a in tempo, motivando la risposta. Si risolva infine la suddetta relazione di ricorrenza.

Esercizio 2 (punti 6)

Si scriva lo pseudocodice di un algoritmo Divide et Impera efficiente che, dato array A di interi A[1], A[2], . . . , A[n], restituisca il numero di indici i per cui i ≤ A[i].

Si calcoli la complessit`a dell’algoritmo proposto.

Si calcoli il limite inferiore al problema utilizzando l’albero di decisione. Si dica se il limite inferiore ottenuto

`

e significativo e, in caso negativo, si formisca un limite inferiore migliore, o un algoritmo migliore.

Esercizio 3 (punti 6)

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

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 chia- mata iniziale `e Ri-Sort(A,1,n). Si confrontino poi, motivando la risposta, le complessit`a asintotiche di Ri-Sort(A,n) e di SelectionSort(A,n) al variare dell’intero K.

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

{

q=(p+r)/2;

for i=1 to K do { Ri-Sort(A,p,q);

Ri-Sort(A,q+1,r);

} MERGE(A,p,q,r);

}

Esercizio 5 (punti 3)

Un ABCB (Albero Binario Completamente Bilanciato) `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 h che un ABCB di altezza h ha 2hfoglie.

Esercizio 6* (punti 3)

[Si consiglia di risolvere questo esercizio per ultimo]

Sia si l’i-esimo elemento pi`u piccolo di un array A, e sia sj il j-esimo elemento pi`u piccolo (ovvero, si e sj

sono gli elementi che si troveranno in posizione i e j nell’array ordinato).

Si scriva, motivando la risposta, la probabilit`a che sie sjsi confrontino tra loro in un’esecuzione di QuickSort.

Riferimenti

Documenti correlati

(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

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

Progettare e descrivere in pseudocodice un algoritmo di tipo divide et impera per calcolare la somma di n interi positivi, ciascuno di valore Θ(1), memorizzati in un array1.

Si progetti e si descriva in pseudocodice una variante del QuickSort che selezioni come pivot il mediano della porzione di array da ordinare invocando l’algoritmo

Si discuta la complessit` a di un algoritmo che lo risolva facendo tutte le

Si fornisca un algoritmo efficiente che stabilisca se esiste un percorso radice-foglia, tale per cui la somma dei valori contenuti nei nodi sia pari a k..

Dato un array a di n interi, progettare un algoritmo efficiente che costruisca ricorsivamente un albero binario bilanciato tale che a[i] sia l(i+1)-esimo campo u.dato in ordine