Counting sort: diferenças entre revisões

648 bytes adicionados ,  18h51min de 2 de dezembro de 2016
Acréscimo do código do Counting Sort na linguagem Java
(→‎Código em C++: Redução de código pelo uso de recursos de C++11.)
Etiquetas: Edição via dispositivo móvel Edição feita através do sítio móvel
(Acréscimo do código do Counting Sort na linguagem Java)
<syntaxhighlight lang="java">
{{Sem-fontes|data=agosto de 2012| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
public static void CountingSort(int[] a) {
 
// acha maior elemento
int maior = v[0];
for (int i = 1; i < v.length; i++) {
if (v[i] > maior) {
maior = v[i];
}
}
// frequencia
int[] c = new int[maior];
for (int i = 0; i < v.length; i++) {
c[v[i] -1] += 1;
}
// cumulativa
for (int i = 1; i < c.length; i++) {
c[i] += c[i-1];
}
Integer[] b = new Integer[v.length];
 
for (int i = 0; i < b.length; i++) {
b[c[v[i] -1] -1] = v[i];
c[v[i] -1]--;
}
// passando os elementos do array ordenado para o array recebido no parâmetro
for (int i = 0; i < b.length; i++) {
v[i] = b[i];
}
}
</syntaxhighlight>{{Sem-fontes|data=agosto de 2012| angola=| arte=| Brasil=| ciência=| geografia=| música=| Portugal=| sociedade=|1=|2=|3=|4=|5=|6=}}
{{Info/Algoritmo
|classe =[[Algoritmo de ordenação]]