La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

6132 8 4 5740 7 9 982757404361 4 1 23 5 1 2 3 4 5 6 7 8 9 10 11 12 12 67 891011 29 28 2 82 2 7 72 6 2 62 2 2 1 18 1 7 17 1 6 16 1 2 12 1 1 1 71 7 1 71.

Presentazioni simili


Presentazione sul tema: "6132 8 4 5740 7 9 982757404361 4 1 23 5 1 2 3 4 5 6 7 8 9 10 11 12 12 67 891011 29 28 2 82 2 7 72 6 2 62 2 2 1 18 1 7 17 1 6 16 1 2 12 1 1 1 71 7 1 71."— Transcript della presentazione:

1 Ordinamento dellarray

2 Max-Heapfy(A,i) l = 2i, r =2i+1 m = i if l A.heapsize and A[l] > A[m] m = l if r A.heapsize and A[r] > A[m] m = r if m i t = A[i], A[i] = A[m], A[m] = t Max-Heapfy(A,m)

3 Build-Max-Heap (A) A.heapsize = A.length for i = A.lenght/2 downto 1 Max-Heapfy(A,i)

4 Heap-Sort (A) Build-Max-Heap(A) for i = A.length downto 2 t = A[i], A[i] = A[1], A[1] = t A.heapsize = A.heapsize - 1 Max-Heapfy(A,1)

5 Paragonare tra loro algoritmi Abbiamo una scala di complessità: vogliamo inserire ogni algoritmo in questa scala

6 Un algoritmo può richiedere tempi diversi per input della stessa taglia. Ad esempio il tempo per ordinare n oggetti può dipendere dal loro ordine iniziale. complessità massima complessità minima complessità media

7 Nellanalizzare la complessità tempo di un algoritmo siamo interessati a come aumenta il tempo al crescere della taglia n dellinput. Siccome per valori piccoli di n il tempo richiesto è comunque poco, ci interessa soprattutto il comportamento per valorigrandi di n (il comportamento asintotico)

8 Inoltre, siccome la velocità del processore influisce sul tempo calcolo per una costante moltiplicativa noi valuteremo la complessità a meno di una tale costante. Questo giustifica le seguenti definizioni:

9 Notazione asintotica O (limite superiore asintotico) O(g(n))

10 Scriveremo f(n) = O(g(n)) per dire che f(n) è una delle funzioni dellinsieme O(g(n)) f(n) = O(g(n)) si legge: f(n) è o grande di g(n) Se f(n) = O(g(n)) rappresenta il tempo calcolo richiesto da un algoritmo diciamo che O(g(n)) è un limite superiore asintotico per la complessità tempo di tale algoritmo.

11 esempi infatti per c = 4 ed n 0 = 5 infatti per c = 3 ed n 0 = 1 Vedremo che in generale per a 2 > 0

12 Notazione asintotica. (limite inferiore asintotico)

13 Se f(n) = (g(n)) rappresenta il tempo calcolo richiesto da un algoritmo diciamo che (g(n)) è un limite inferiore asintotico per la complessità tempo di tale algoritmo. Scriveremo f(n) = (g(n)) per dire che f(n) è una delle funzioni dellinsieme (g(n)). f(n) = (g(n)) si legge: f(n) è omega di g(n)

14 esempi infatti per c = 1 ed n 0 = 10 infatti per c = 1 ed n 0 = 1 Vedremo che in generale se a 2 > 0

15 Notazione asintotica. (limite asintotico stretto)

16 Se f(n) = (g(n)) rappresenta il tempo calcolo richiesto da un algoritmo diciamo che (g(n)) è un limite asintotico stretto per la complessità tempo di tale algoritmo. Scriveremo f(n) = (g(n)) per dire che f(n) è una delle funzioni dellinsieme (g(n)). f(n) = (g(n)) si legge: f(n) è theta di g(n)

17 esempi per c 1 = 1, c 2 = 4 ed n 0 = 10 Dunque

18 per ogni n n 0 allora altrimenti per ogni n n 0. Assurdo! per ogni n n 0 allora altrimenti per ogni n n 0. Assurdo!

19 Metodo del limite Spesso è possibile determinare dei limiti asintotici calcolando il limite di un rapporto. Ad esempio se allora per ogni > 0 esiste n 0 tale che per n n 0 Preso 0 < < k e posto c 1 = k e c 2 = k + e quindi

20 Se diciamo che Attenzione: quando il limite del rapporto non esiste questo metodo non si può usare. ed in questo caso Se diciamo che ed in questo caso

21 In generale per ogni funzione polinomiale di grado k con coefficiente a k > 0. Inoltre

22 Per 0 < h < k e 1 < a < b :

23 esiste un algoritmo che risolve il problema con questa complessità limite superiore: O(n 2 ) Valutare la difficoltà dei problemi

24 Un limite superiore per il problema dellordinamento Abbiamo visto che Insert-Sort per ordinare n oggetti richiede O(n 2 ) operazioni Quindi O(n 2 ) è un limite superiore

25 Valutare la difficoltà dei problemi ogni algoritmo che risolve il problema ha complessità maggiore o uguale di questa limite inferiore: (n)


Scaricare ppt "6132 8 4 5740 7 9 982757404361 4 1 23 5 1 2 3 4 5 6 7 8 9 10 11 12 12 67 891011 29 28 2 82 2 7 72 6 2 62 2 2 1 18 1 7 17 1 6 16 1 2 12 1 1 1 71 7 1 71."

Presentazioni simili


Annunci Google