

Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
esonero informatica calamoneri
Tipologia: Esercizi
1 / 2
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!


Esercizio 1 (8 punti) Si consideri la seguente funzione in pseudocodice, che viene richiamata su un vettore bidimensionale M [1..n][1..n] di interi, e che calcola il massimo valore contenuto in M :
funzione Max-Ricorsivo (M : vettore; n: interi) k ← M [n][n]; for i = 1 to n do k ← max(k, M [n, i]); for i = 1 to n − 1 do k ← max(k, M [i, n]); if (n = 1) return k return max(k, Max-Ricorsivo (M , n − 1 )).
Da essa si ricavi l’equazione di ricorrenza che ne esprime il costo com- putazione (1.5 punti). Inoltre, si risolva l’equazione di ricorrenza trovata utilizzando: a. (2 punti) il metodo iterativo; b. (2 punti) il metodo dell’albero; c. (2.5 punto) il metodo di sostituzione.
Esercizio 2 (12 punti) Considerare il problema di trovare il minimo intero non presente in un vettore di interi non negativi distinti. Ad esempio, nel vettore: { 3 , 8 , 4 , 5 , 11 , 15 , 9 , 2 , 6 , 0 , 1 } il minimo intero non presente `e il 7.
o allocare strutture dati di dimensione dipendente da n. Valutare, anche informalmente, la complessita della funzione.e la lunghezza del vettore, fornire una funzione int minFreeLin(int v[], int n) di comples- sita lineare in n che risolve lo stesso problema avendo la libert`a di allocare un vettore di opportuna lunghezza locale alla funzione minFree.e possibile accelerare la funzione scritta al punto 1? [none richiesto codice per questo punto]Suggerimento: scrivere una funzione ausiliaria ricorsiva di prototipo int minFreeAux(int v[], int inf, int sup) che viene chiamata rispettando la precondizione che il minimo numero libero sia nell’intervallo [inf, sup].
Esercizio 3 (12 punti) Si consideri un vettore A[1..n] di n numeri interi positivi. Si scrivano due algoritmi, uno iterativo ed uno ricorsivo, che dato A, stampino il massimo ed il minimo dei valori contenuti in A. Di tali algoritmi: a. (3 punti) si dia la spiegazione a parole (evidenziando le eventuali differenze tra la versione iterativa e quella ricorsiva); b. (2+3 punti) si scrivano i due pseudocodici; c. (1.5+2.5 punti) si calcolino i costi computazionali.