La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl Diremo che f(n) =

Presentazioni simili


Presentazione sul tema: "Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl Diremo che f(n) ="— Transcript della presentazione:

1 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Diremo che f(n) = O( g(n) ) se f(n) < c g(n) per qualche costante c, ed n abbastanza grande Notazione asintotica (3 di 4)

2 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Ad esempio, possiamo rimpiazzare: –T(n)=3F n con T(n)=O(F n )=O( n ) –T(n)=2n e T(n)=4n con T(n)=O(n) –T(n)= F n con T(n)=O(2 n ) Notazione asintotica (4 di 4)

3 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Possiamo sperare di calcolare F n in tempo inferiore a O(n)? Un nuovo algoritmo

4 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl fibonacci4 non è il miglior algoritmo possibile E possibile dimostrare per induzione la seguente proprietà di matrici: Potenze ricorsive n = F n+1 FnFn FnFn F n-1 Useremo questa proprietà per progettare un algoritmo più efficiente

5 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Dimostrazione per induzione Base induzione: n=2

6 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Algoritmo fibonacci5 Il tempo di esecuzione è ancora O(n) Cosa abbiamo guadagnato?

7 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Possiamo calcolare la n-esima potenza elevando al quadrato la ( n/2 )-esima potenza Se n è dispari eseguiamo una ulteriore moltiplicazione Esempio: 3 2 =9 3 4 =(3 2 ) 2= (9) 2 = =(3 4 ) 2= (81) 2 =6561 Calcolo di potenze

8 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Algoritmo fibonacci6

9 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Tutto il tempo è speso nella procedura potenzaDiMatrice –Allinterno della procedura si spende tempo costante –Si esegue una chiamata ricorsiva con input n/2 Lequazione di ricorrenza è pertanto: Tempo di esecuzione T(n) = O(1) + T(n/2)

10 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Metodo delliterazione Si può dimostrare che T(n) c log 2 n + T(1) = O(log 2 n ) fibonacci6 è quindi esponenzialmente più veloce di fibonacci3 !

11 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Riepilogo fibonacci6 fibonacci5 fibonacci4 fibonacci3 fibonacci2 O(log n) O(n) O(2 n ) O(log n) O(1) O(n) Tempo di esecuzione Occupazione di memoria


Scaricare ppt "Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © 2004 - The McGraw - Hill Companies, srl Diremo che f(n) ="

Presentazioni simili


Annunci Google