• Non ci sono risultati.

Esercizi Domande AlgoritmieStruttureDati3Settembre2015

N/A
N/A
Protected

Academic year: 2021

Condividi "Esercizi Domande AlgoritmieStruttureDati3Settembre2015"

Copied!
1
0
0

Testo completo

(1)

Algoritmi e Strutture Dati 3 Settembre 2015

Cognome . . . Nome . . . Matricola . . . .

Note

1. La leggibilit`a `e un prerequisito: parti difficili da leggere potranno essere ignorate.

2. Quando si presenta un algoritmo `e fondamentale spiegare l’idea soggiacente il suo funzionamento e motivarne la correttezza.

Domande

Domanda A (5 punti) Risolvere la ricorrenza T (n) = 4T (n/2) + n2

n utilizzando il master theorem.

Domanda B (5 punti) Dare la definizione di B-albero. Qual `e la massima altezza di un B-albero con grado minimo t contenente n chiavi? Motivare le risposte.

Domanda C (5 punti) Scrivere una funzione complete(T ) che dato in input un albero binario verifica se `e completo (ovvero ogni nodo interno ha due figli e tutte le foglie hanno la stessa distanza dalla radice).

Esercizi

Esercizio 1 (9 punti) Scrivere una procedura di tipo divide et impera over che dato un array di interi distinti A[1..n], ordinato in modo crescente, e un intero x restituisce l’indice del pi`u piccolo elemento in A strettamente maggiore di x. Se nessun elemento di A soddisfa la condizione, si restituisca n + 1. Valutare la complessit`a dell’algoritmo.

Esercizio 2 (9 punti) Sia data un’espressione E = x1 op1 x2 op2 . . . xn−1 opn−1 xn, con n ≥ 2, dove ogni xi `e un intero positivo e opi ∈ {+, ∗} di somma o di moltiplicazione (dati).

Utilizzando la programmazione dinamica si determini una parentetizzazione dell’espressione che rende il valore dell’espressione minimo. Ad esempio, l’input 7 + 10 ∗ 2 pu`o essere parentetizzato come ((7 + 10) ∗ 2) = 34 oppure come (7 + (10 ∗ 2)) = 27. In questo caso, la parentetizzazione desiderata `e quindi la seconda. Pi`u precisamente:

i. dare una caratterizzazione ricorsiva del valore minimo vi,j prodotto da una parentetizzazione della sottoespressione xi opi. . . opj−1 xj ;

ii. tradurre tale definizione in un algoritmo (bottom up o top down con memoization) che determina il valore minimo;

iii. trasformare l’algoritmo in modo che permetta anche di stampare l’espressione;

iv. valutare la complessit`a dell’algoritmo.

Riferimenti

Documenti correlati

Qui invece, prendere singolarmente le prime due variabili, ottenere singolarmente il gra…co dei punti sper- imentali (usando come ordinata la seconda variabile) sovrapponendo ora

Progettare un algoritmo efficiente di tipo divide et impera per determinare se un array non ordinato di n interi, contenente solo 0 e 1, contiene più 0 di 1.. Analizzare la

[r]

Non ci sono simmetrie evidenti... Non ci sono

Per tale valore di α trovare le altre due radici di P (z) esprimendole in forma algebrica... Svolgimento.. Non ci sono simmetrie. 4) Il grafico della

Svolgimento.. Per il teorema di Leibniz, la serie converge.. Calcoliamo separatamente due primitive.. Bisogna quindi studiare la convergenza dell’integrale in 0.. Per tali x studiamo

Il candidato deve consegnare questo foglio assieme al foglio intestato.. Ogni affermazione deve essere

Scrivere un algoritmo ricorsivo di tipo divide-et-impera che, dato un array A[1..n] di valori reali, restituisce true se e solo se A è ordinato in senso non decrescente, cioè se A[1]