Complessitą degli ordinamenti ingenui


Bubble Sort

L'istruzione SCAMBIA() viene eseguita ogni volta che SE() ALLORA ha successo; consideriamo il caso pessimo, cioè che succeda a ogni passo. Quante volte viene eseguita?
ijT
11...n-1n-1
21...n-2n-2
.........
n-11...(n-(n-2))
1...2
2
n-11...(n-(n-1))
1...1
1


Quindi
T(n) = (n-1)+(n-2)+...+1.

Quanto vale la somma?
Sappiamo che 1+2+...N = ½N(N+1) e quindi
T(n) = ½(n-1)n = ½n2-½n.

La complessità in tempo asintotica dell'algoritmo di ordinamento Bubble Sort è O(n2), sia per il numero di confronti che per il numero di scambi.

Nel caso ottimo, il vettore già ordinato, il numero di scambi è zero ma rimane quadratico il numero di confronti.

Selection Sort

Quante volte viene eseguita l'istruzione SE(...) ALLORA?
i j T
0 1 ... n-1 n-1
1 2 ... n-1 n-2

...

...

...

n-2 n-1 ... n-1

1



Calcolo di T(n)
T(n) = (n-1)+(n-2)+...+1
Quanto vale la somma? Sappiamo che
1+2+...N = ½N(N+1)
e quindi
T(n) = ½(n-1)n = ½n2-½n.

La complessitą in tempo asintotica dell'algoritmo di ordinamento selection sort č O(n2), per il numero di confronti.
Il numero di scambi č n-1, lineare.
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki