La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Soluzione 6: Algoritmo Quicksort

Presentazioni simili


Presentazione sul tema: "Soluzione 6: Algoritmo Quicksort"— Transcript della presentazione:

1 Soluzione 6: Algoritmo Quicksort
Si basa sulla partizione dell’array rispetto ad un suo elemento scelto come “pivot”. L’operazione viene quindi ripetuta sulle due parti così ottenute. 9 9 6 4 6 9 2 8 8 4 4 3 6 4 1 2 9 2 7 5 7 4 8 4 3 3 6 7 7 1 1 9 5 7 5 i j i i j i i j j i i j j j j j j j

2 Quicksort(A,p,r) if p < r q = Partition(A,p,r) Quicksort(A,p,q-1)
Quicksort(A,q+1,r) 1 p r n A non ordinati 1 p r n A q 1 p r n A q 1 p r n A q 1 p r n A ordinati

3 Partition(A,p,r) x = A[r] i = p -1 for j = p to r -1 if A[j] < x
i = i+1 scambia A[i] e A[j] scambia A[i+1] e A[r] return i+1 1 p r n A 1 p r n A i x 1 p r n A i x j 1 p r n A i x 1 p r n A i x

4 Array ordinato o ordinato in senso inverso
Quicksort (A,p,r) // Complessità massima if p < r q = Partition(A,p,r) Quicksort(A,p,q-1) Quicksort(A,q+1,r) Array ordinato o ordinato in senso inverso

5 Quicksort(A,p,r) // Complessità minima
if p < r // q = Partition(A,p,r) // Quicksort(A,p,q-1) // Quicksort(A,q+1,r) //

6 Quicksort (A,p,r) // Complessità media
if p < r then q = Partition(A,p,r) Quicksort(A,p,q-1) Quicksort(A,q+1,r)

7 Per n > 1 e moltiplicando per n otteniamo Per n = 2 Per n > 2 e dunque

8 dividendo per n(n+1) ponendo otteniamo

9 la cui soluzione è

10 Infine Quindi

11 La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni pratiche questo non è vero!!! Vi sono applicazioni in cui le permutazioni quasi ordinate sono molto più probabili e questo può aumentare la complessità media fino ad O(n2).

12 Randomized-Partition(A,p,r)
i = Random(p,r) scambia A[i] e A[r] return Partition(A,p,r) Randomized-Quicksort(A,p,r) if p < r then q = Randomized-Partition(A,p,r) Randomized-Quicksort(A,p,q-1) Randomized-Quicksort(A,q+1,r)


Scaricare ppt "Soluzione 6: Algoritmo Quicksort"

Presentazioni simili


Annunci Google