• Non ci sono risultati.

Dati e Algoritmi I (Pietracaprina): Esercizi

N/A
N/A
Protected

Academic year: 2021

Condividi "Dati e Algoritmi I (Pietracaprina): Esercizi"

Copied!
1
0
0

Testo completo

(1)

Esercizi

Esercizio 1

Progettare un algoritmo per ordinare in loco un array a di n interi, il cui valore può essere solo 0, 1 o 2.

L’algoritmo deve richiedere tempo lineare nel caso pessimo e può solo scambiare elementi. In particolare, non può usare contatori per mantenere il numero di elementi di un certo valore.

Esercizio 2

La ricorrenza T(n)   =   7   T(n/2)   +   n2   descrive il tempo di esecuzione di un algoritmo A.   Un altro algoritmo A’  ha un tempo di esecuzione T’(n)  =  a  T’(n/4)  +  n2.  Qual è il più grande valore intero di a che rende A’  asintoticamente più veloce di A?  

Esercizio 3

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 complessità dell’algoritmo trovato, e dimostrarne la correttezza.

Esercizio 4

Si consideri la seguente relazione di ricorrenza

Dati e Algoritmi I (Pietracaprina): Esercizi

3

A [h, k] = A[k, h], per ogni 0 ⇥ h, k < n, e quindi la propriet`a S `e verificata.

2 Problema 3 Si consideri la seguente relazione di ricorrenza:

T (n) = n per n = 0, 1

2T (⌅n/4⇧) + 3n per n > 1 Dimostrare che T (n) ⇥ 6n per ogni n ⇤ 0.

Soluzione. Dimostriamo che T (n) ⇥ 6n per induzione su n ⇤ 0. Per l’induzione scegliamo n0 = 0 e h = 1.

Base: Per n = 0, 1 la relazione `e banalmente verificata.

Passo induttivo: Sia n ⇤ 1 = n0 + h e assumiamo T (m) ⇥ 6m per ogni 0 ⇥ m ⇥ n. Si ha che:

T (n + 1) = 2T (⌅(n + 1)/4⇧) + 3(n + 1)

⇥ 2(6⌅(n + 1)/4⇧) + 3(n + 1) (per hp induttiva)

⇥ 2(6(n + 1)/4) + 3(n + 1) = 6(n + 1).

2 Problema 4 Si consideri la seguente relazione di ricorrenza.

G(n) =

1 per n = 0

2 per n = 1

G(n 1) + 2G(n 2) per n > 1 a. Trovare i valori di G(n), per n = 2, 3, 4, 5.

b. Dal punto precedente, intuire la soluzione esatta di G(n) e provarla per induzione.

c. Dato un intero n, descrivere un algoritmo efficiente per il calcolo di G(n) analizzandone la complessit`a in tempo.

Soluzione.Esercizio 5

Progettare un algoritmo di ordinamento che si comporti come MergeSort, ma che divida l’array ricorsivamente in tre parti anziché in due. Scrivere lo pseudocodice della nuova procedura MergeSort3.

Descrivere a parole la nuova procedura Fusione3. Impostare e risolvere l’equazione di ricorrenza associata.

Dati e Algoritmi I (Pietracaprina): Esercizi

3

A [h, k] = A[k, h], per ogni 0 ⇥ h, k < n, e quindi la propriet`a S `e verificata.

2 Problema 3 Si consideri la seguente relazione di ricorrenza:

T (n) = n per n = 0, 1

2T (⌅n/4⇧) + 3n per n > 1 Dimostrare che T (n) ⇥ 6n per ogni n ⇤ 0.

Soluzione. Dimostriamo che T (n) ⇥ 6n per induzione su n ⇤ 0. Per l’induzione scegliamo n0 = 0 e h = 1.

Base: Per n = 0, 1 la relazione `e banalmente verificata.

Passo induttivo: Sia n ⇤ 1 = n0 + h e assumiamo T (m) ⇥ 6m per ogni 0 ⇥ m ⇥ n. Si ha che:

T (n + 1) = 2T (⌅(n + 1)/4⇧) + 3(n + 1)

⇥ 2(6⌅(n + 1)/4⇧) + 3(n + 1) (per hp induttiva)

⇥ 2(6(n + 1)/4) + 3(n + 1) = 6(n + 1).

2 Problema 4 Si consideri la seguente relazione di ricorrenza.

G(n) =

1 per n = 0

2 per n = 1

G(n 1) + 2G(n 2) per n > 1 a. Trovare i valori di G(n), per n = 2, 3, 4, 5.

b. Dal punto precedente, intuire la soluzione esatta di G(n) e provarla per induzione.

c. Dato un intero n, descrivere un algoritmo efficiente per il calcolo di G(n) analizzandone la complessit`a in tempo.

Soluzione.

Riferimenti

Documenti correlati

Macintosh si appropria del lavoro che si trova sulla vostra scrivania ma non della vostra scrivania.. Occupa soltanto 25 x 25 cm più o meno come una

Occorre, tuttavia, evidenziare che numerosi contratti collettivi di lavoro prevedono ulteriori fattispecie di congedo come, ad esempio, l’aspettativa non retribuita per motivi

Il secondo momento della lotta cattolica arrivò all’inizio degli anni Novanta, quando alcuni pensatori cattolici, Michael Novak e padre Richard John Neuhaus, proposero il

Nel periodo del #iorestoacasa non ho smesso di essere in contatto con i clienti, ci siamo confrontati su come sarà possi- bile ripartire da una crisi prima sanitaria, poi

Leggi, pensa fuori dagli schemi, immagina... Cerca, scarica, semplifica il

L’evento, organizzato da ANITA, ha riunito relatori di calibro internazionale provenienti da Paesi membri dell’UE dove sono stati sperimentati e, in alcuni casi, in cui è ammessa

Per il 2019, fra gli obiettivi da rag- giungere, c’era l’utilizzo delle con- fezioni contenenti un numero maggiore di compresse, ad esempio quelle da 28 compresse per gli

La legge [2] stabilisce che, anche in caso di proroga, il termine massimo non può comunque superare i diciotto mesi, salvo che il pubblico ministero e l’indagato chiedano la proroga