• Non ci sono risultati.

(6 punti) Si progetti un algoritmo basato sulla tecnica Divide et Impera il cui costo in tempo sia definito dalla ricorrenza

N/A
N/A
Protected

Academic year: 2021

Condividi "(6 punti) Si progetti un algoritmo basato sulla tecnica Divide et Impera il cui costo in tempo sia definito dalla ricorrenza"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO Primo Compitino 4 Aprile 2018

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. (6 punti) Si progetti un algoritmo basato sulla tecnica Divide et Impera il cui costo in tempo sia definito dalla ricorrenza:

• T (n) = 2 T (n/2) + Θ(log2n), se n > 1

• T (n) = Θ(1) altrimenti.

e si risolva la ricorrenza.

Esercizio 2. (6 punti) Si progetti un algoritmo che dati due array ordinati A e B rispettivamente di n e m elementi interi, conti il numero di elementi condivisi dai due array.

Esercizio 3. (6 punti) Si consideri l’algoritmo seguente il cui calcolo `e avviato con la chiamata iniziale Quick SortB(A,1,n):

Quick SortB(A, p, r) if (p < r) {

k = b(p + r)/2c;

s = Quick Select (A, p, r, k);

q = PartitionB (A, p, s, r);

Quick SortB (A, p, q-1);

Quick SortB (A, q+1, r);

}

ove la funzione PartitionB `e uguale a Randomized Partition del QuickSort visto in classe, eccetto che il pivot utilizzato `e quello in posizione s. Si commenti il funzionamento di Quick SortB e si ricavi l’equazione di ricorrenza associata. Si risolva inoltre tale equazione nel caso medio e nel caso pessimo.

Esercizio 4. (6 punti) Sia dato un array di interi A[5, 13, 1, 8, 6, 12] si applichi ripetutamente l’algoritmo M ax Heap Insert per la costruzione di un Heap di massimo, mostrando la configurazione del vettore dopo ogni chiamata.

Esercizio 5. (6 punti) Si consideri il problema che dato un array A[1, n], non ordinato, di interi positivi e negativi, determini se esistono due indici i e j, i < j, tali che A[i] + A[j] = 0 e, nel caso, li restituisca in output; altrimenti, restituisca la coppia (−1, −1). Si stabilisca un limite inferiore al problema usando la tecnica dell’albero di decisione. Infine, si progetti un algoritmo efficiente, si valuti la sua complessit`a asintotica in tempo, e si valuti la significativit`a del limite inferiore determinato.

Riferimenti

Documenti correlati

Definiamo il Centro di Massa (CM) quel punto la cui posizione `e de- finita da una media pesata delle posizioni di ciascun punto materiale del sistema; ad esempio nel caso di N

[r]

Il testo del compito deve essere consegnato insieme alla bella, mentre i fogli di brutta non devono essere consegnati.. Durante la prova non ` e consentito l’uso di libri,

Il testo del compito deve essere consegnato insieme alla bella, mentre i fogli di brutta non devono essere consegnati.. Durante la prova non ` e consentito l’uso di libri,

Appena il programma viene caricato in memoria per essere eseguito la memoria apparirebbe come mostrato dalla seguente figura:. A seguito dell'esecuzione del main(), l'area Heap

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

[r]

Si completi il seguente frammento di codice che inizializza tutti gli n elementi di un vettore v di numeri reali di tipo double ad un valore che rappresenti