• Non ci sono risultati.

008AA – ALGORITMICA E LABORATORIO

N/A
N/A
Protected

Academic year: 2021

Condividi "008AA – ALGORITMICA E LABORATORIO"

Copied!
1
0
0

Testo completo

(1)

008AA – ALGORITMICA E LABORATORIO 5 Settembre 2019

Cognome Nome: N. Matricola: Corso: A B

Esercizio 1. (2+6+3 punti)

Sia A un array non ordinato di n interi A[1], A[2], . . . , A[n]. Definiamo salto in A un indice i, con 1 ≤ i < n, tale che A[i] − A[i + 1] ≥ 2. Si pu`o dimostrare che se n ≥ 2 e A[n] − A[1] ≥ n, l’array A ha almeno un salto.

Dato un array A di dimensione n tale che n ≥ 2 e A[n] − A[1] ≥ n, si consideri il problema di trovare la posizione i di un salto.

1. Dimostrare che un qualunque algoritmo che risolve il problema suddetto mediante confronti richiede tempo Ω(logn) al caso pessimo.

2. Descrivere un algoritmo ottimo di tipo divide-et-impera per trovare un salto.

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

Esercizio 2. (3+3 punti)

Date le stringhe A = AT GAT A e B = AGT ACA, simulare l’algoritmo di programmazione dinamica per il calcolo della Edit Distance tra due stringhe mostrando:

1. Il contenuto della tabella di programmazione dinamica, e il valore della distanza cos`ı calcolata;

2. Tutti gli allineamenti ottimi ricostruibili dalla tabella.

Esercizio 3. (8 punti)

Dato un grafo non orientato G = (V, E), un vertice sorgente s ∈ V e un intero non negativo k, progettare e descrivere in pseudocodice un algoritmo efficiente per stampare i vertici a distanza k dalla sorgente s.

Analizzare la complessit`a dell’algoritmo proposto.

Esercizio 4. (2+2+2 punti)

4a. Sia A un array di interi quasi ordinato, ovvero A `e ordinato fatta eccezione per al pi`u 3 elementi che sono fuori posto. `E possibile ordinare A in tempo lineare? Se s`ı, come? Se no, perch´e?

4b. Si descriva a parole (no pseudocodice) il funzionamento di MERGE-SORT e di QUICK-SORT, impie- gando al pi`u 5 righe per ciascun algoritmo.

4c. Si indichino le complessit`a di MERGE-SORT e di QUICK-SORT al caso medio, pessimo, e ottimo, indicando per ognuno dei due algoritmi in quali condizioni i tre casi hanno luogo.

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

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