Counting sort: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m robot Aggiungo: de, he, nl |
Nessun oggetto della modifica |
||
Riga 1:
{{stub informatica}}
Il '''Counting sort''' è un [[algoritmo]] di ordinamento per valori numerici interi con [[complessità]] lineare O(n+m),
L'algoritmo è semplice ed intuitivo: si calcolano i valori max(A) e min (A) e si prepara un array C di dimensione pari all'intervallo dei valori (l'[[algoritmo]] non agisce infatti in loco) con C[i] che rappresenta la frequenza dell'elemento i+min nell'array di partenza A. Si visita l'array A aumentando l'elemento di C corrispondente. Dopo si visita l'array C in ordine e si stampano, per ogni elemento i, C[i] copie.
countingSort(A[])
{
//Cacolo degli elementi max e min
max=A[0];
creaarray C[max-min+1]; crea un array C▼
min=A[1];
per ogni elemento i in A{
se A[i]>max
allora max=A[i];
altrimenti se A[i]<min
allora min=A[i];
}
//costruzione dell'array C
▲ creaarray C[max-min+1]; //crea un array C
per ogni elemento i in A{
}
//Ordinamento in base al contenuto dell'array delle fraquenze C
k=0 //indice per l'array A
per ogni elemento i in C{
num=i+min
finchè
A[k]=num;
k++
}
}
}
|