Counting sort: diferenças entre revisões

2 839 bytes removidos ,  12h00min de 2 de maio de 2017
m
Desfeita(s) uma ou mais edições de 2804:d4b:435b:b400:28d3:f6ae:a2f7:d262 (A Wikipédia não é um repositório de códigos), com Reversão e avisos
m (Desfeita(s) uma ou mais edições de 2804:d4b:435b:b400:28d3:f6ae:a2f7:d262 (A Wikipédia não é um repositório de códigos), com Reversão e avisos)
}
}
</syntaxhighlight>
=== Código em Java 1.8 vetor de inteiros ===
<syntaxhighlight lang="java">
public static void countingSort(int[] A, int maior) {
/*Por Robert Santos-Ciência da computação-UFMA*/
int[] aux = new int[maior + 1];
int[] resp = new int[A.length];
// preenche aux com zeros (java já faz isso automaticamente)
for (int i = 0; i < A.length; i++) {
aux[A[i]]++;
}
 
for (int i = 1; i < aux.length; i++) {
aux[i] += aux[i - 1];
}
 
for (int i = A.length - 1; i >= 0; i--) {
resp[aux[A[i]] - 1] = A[i];
aux[A[i]]--;
}
for (int i = 0; i < A.length; i++) {
A[i] = resp[i];
}
}
</syntaxhighlight>
 
=== Código em Java 1.8 vetor de objetos ===
<syntaxhighlight lang="java">
public static void countingSort(Componente[] A, int maior) {
/*Componente possui campo key(inteiro) e campo msg(string)*/
/*Por Robert Santos-Ciência da computação-UFMA*/
int[] aux = new int[maior + 1];
// preenche aux com zeros (java já faz isso automaticamente)
Componente[] resp = new Componente[A.length];
for (int i = 0; i < A.length; i++) {
aux[A[i].getKey()]++;
}
 
for (int i = 1; i < aux.length; i++) {
aux[i] += aux[i - 1];
}
 
for (int i = A.length - 1; i >= 0; i--) {
resp[aux[A[i].getKey()]-1]= A[i];
aux[A[i].getKey()]--;
}
for (int i = 0; i < A.length; i++) {
A[i] = resp[i];
}
}
</syntaxhighlight>
 
=== Código em Java 1.8 vetor de inteiros(CountingSort em ordem Decrescente) ===
<syntaxhighlight lang="java">
public static void countingSort(int[] A, int maior) {
/*Por Robert Santos && Francisco Chaves-ciência da Computação-UFMA*/
int[] aux = new int[maior + 1];
int[] resp = new int[A.length];
// preenche aux com zeros (java já faz isso automaticamente)
for (int i = 0; i < A.length; i++) {
aux[A[i]]++;
}
 
for (int i = aux.length -2; i >=0; i--) {
aux[i] += aux[i + 1];
}
 
for (int i = A.length - 1; i >= 0; i--) {
resp[aux[A[i]] - 1] = A[i];
aux[A[i]]--;
}
for (int i = 0; i < A.length; i++) {
A[i] = resp[i];
}
}
</syntaxhighlight>
 
=== Código em Java 1.8 vetor de Objetos(CountingSort em ordem Decrescente) ===
<syntaxhighlight lang="java">
public static void countingD(Componente[] A, int maior) {
/*Componente possui campo key(inteiro) e campo msg(string)*/
/*Por Robert Santos && Francisco Chaves-ciência da Computação-UFMA*/
int[] aux = new int[maior + 1];
Componente[] resp = new Componente[A.length];
// preenche aux com zeros (java já faz isso automaticamente)
for (int i = 0; i < A.length; i++) {
aux[A[i].getKey()]++;
}
 
for (int i = aux.length -2; i >=0; i--) {
aux[i] += aux[i + 1];
}
 
for (int i = A.length - 1; i >= 0; i--) {
resp[aux[A[i].getKey()]-1]= A[i];
aux[A[i].getKey()]--;
}
for (int i = 0; i < A.length; i++) {
A[i] = resp[i];
}
}
 
</syntaxhighlight>{{Portal3|Tecnologias de informação}}