Selection sort
Il selection sort fa parte degli algoritmi di sorting, ed è una procedura ricorsiva.
Input Sequenza di valori .
Output Permutazione della sequenza tale che
title: Attenzione
Come costo computazionale calcoliamo i confronti eseguiti tra i valori di A.- Cerca il valore minimo tra gli elementi e lo scambia con quello al primo posto
- Ordina i restanti elementi allo stesso modo
- Quando rimane solo in elemento da riordinare, la procedura termina
SelectionSort(A, i, j):
if i == j then
return
else
k := IndexForMin(A, i, j)
inverti A[i] e A[k]
SelectionSort(A, i+1, j)
Chiamata principale: SelectionSort(a, 0, n-1).
Funzione per trovare l’indice dell’elemento minore nell’array:
IndexForMin(A, i, j):
k := i
for l = i + 1 to j:
if A[l] < A[k] then
k := l
return k
Il costo computazionale di IndexForMin è esattamente , il che rientra in .
Calcolo del costo dell’algoritmo:
- caso base:
- ogni chiamata ricorsiva richiede i confronti tra gli elementi per trovare , + quelli della chiamata successiva
- dato A con i e j,
IndexForMinrichiede operazioni - la procedura ricorsiva viene invocata 1 volta per ogni i tale che
Questo si trasforma in