Selection sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m nessuna indicazione della categoria/galleria Commons quando è presente la proprietà P373 e modifiche minori |
m Annullata la modifica di 88.55.113.74 (discussione), riportata alla versione precedente di Phantomas Etichetta: Rollback |
||
(25 versioni intermedie di 18 utenti non mostrate) | |||
Riga 1:
{{Algoritmo
|classe = [[Algoritmo di ordinamento]]
|immagine =
|didascalia = Animazione dell'algoritmo che ordina dei numeri casuali
|struttura dati = [[Array]]
Riga 10:
|ottimale = No
}}
L
== Descrizione dell'algoritmo ==
L'algoritmo ''seleziona'' di volta in volta il numero minore nella sequenza di partenza e lo sposta nella sequenza ordinata; di fatto la sequenza viene suddivisa in due parti: la sottosequenza ordinata, che occupa le prime posizioni dell'array, e la sottosequenza ''da'' ordinare, che costituisce la parte restante dell'array.
{|
|
Riga 31 ⟶ 30:
<math>\sum_{i=1}^{n-1} \sum_{j=i+1}^{n} c </math>, dove ''c'' è una costante, dato che l'operazione effettuata può essere rappresentata da una costante.
<math>\sum_{i=1}^{n-1} \sum_{j=i+1}^{n} 1 = \sum_{i=1}^{n-1} (n - (i + 1) + 1 ) = \sum_{i=1}^{n-1}(n-i) = \sum_{i=1}^{n-1} n - \sum_{i=1}^{n-1} i \approx n(n-1) - \frac{n(n
L'ordinamento per selezione effettua <math>N(N-1)/2</math> confronti e, nel caso peggiore/migliore/medio, <math>\theta(n-1)</math> scambi.
Riga 40 ⟶ 39:
Quella che segue è una rappresentazione in [[pseudocodice]] del Selection sort:
'''for''' i = 0 '''to''' n - 1
posmin ← i
Riga 54 ⟶ 53:
Di seguito una possibile implementazione in [[Java (linguaggio di programmazione)|Java]] :
<
class SelectionSort{
public static void sort(int arr[]){
int n=arr.length;
// Incrementa di 1 il limite inferiore del sub array da ordinare
for(int i=0;i<sz-1;i++){▼
for (int i = 0; i < n-1; i++)
{
// Trova il minimo
int indice_min = i;
// Confronto per trovare un nuovo minimo
if (arr[j] < arr[indice_min])
indice_min = j; // Salvo l'indice del nuovo minimo
}
// Scambia il minimo trovato con il primo elemento
swap(arr,indice_min,i);
}
}
private static void swap(int
int
arr[
arr[
}
}
</syntaxhighlight>
== Casi limite ==
Riga 83 ⟶ 91:
== Altri progetti ==
{{interprogetto|b=Implementazioni di algoritmi/Selection sort|b_oggetto=implementazioni|b_preposizione=
== Collegamenti esterni ==
* {{Collegamenti esterni}}
{{ordinamento}}
{{portale|informatica}}
[[Categoria:Algoritmi di ordinamento]]
|