Title: Algoritmo SelectSort
1Algoritmo SelectSort
- Invariante di ciclo ad ogni passo
- gli ultimi i elementi del vettore corrente sono
gli i elementi massimi del vettore originale - gli ultimi i elementi del vettore corrente sono
ordinati
Inizializzazione i 0 Passo estrarre
lelemento massimo dal vettore 1..n-i e
scambiarlo con quello in posizione n-i Condizione
di arresto i n
2Pseudocodice di SelectSort
SelectSort(n,A) For j n downto 2 do estrai
il massimo e mettilo in coda j_ max
FindMax(A,j) scambia Aj_max e Aj
FindMax(A,j) i_max 1 For i 2 to j do
If Ai_max lt Ai then i_max i return i_max
3SelectSort
- Scandisce la sequenza dallultimo elemento al
primo - Ad ogni iterazione (ExtractMax)
- cerca lelemento massimo Aj_max nella
sottosequenza corrente A1,,j - scambia lultimo elemento con quello massimo
(facendo uscire lelemento massimo dalla sequenza
e ricompattandola)
j
n
1
ordinati
disordinati
Algoritmo di ordinamento stabile (perché?)
Complessità O(n2) in ogni caso (anche in quello
migliore)