Bubble Sort
Este algoritmo de ordenação compara cada elemento de uma dada posição
com o elemento da posição seguinte, a fim de, ao final da primeira
iteração, o último elemento do vetor ser o maior elemento do conjunto.
Ao final da segunda iteração, o penúltimo elemento do vetor será o
segundo maior elemento do conjunto e assim sucessivamente, até que o
primeiro elemento do vetor seja o menor. Este comportamento assemelha-se
ao das bolhas, o que dá nome ao algoritmo.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main processando = new Main();
processando.processa();
System.exit(0);
}
static int leitor(BufferedReader br) throws NumberFormatException, IOException {
int n;
int resp = 0;
int sinal = 1;
while (true) {
n = br.read();
if (n >= '0' && n <= '9') break;
if (n == '-') sinal = -1;
if (n == '+') sinal = 1;
}
while (true) {
resp = resp*10 + n-'0';
n = br.read();
if (n < '0' || n > '9') break;
}
return resp*sinal;
}
void processa() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int qteElementos = leitor(br);
int[] vetor = new int[qteElementos];
for (int i = 0; i < qteElementos; i++) {
vetor[i] = leitor(br);
}
int contador = 0;
for (int i = 0; i < qteElementos-1; i++) { //0-3
for (int j = 0; j < qteElementos-1; j++) { //0-3
if (vetor[j] > vetor[j+1]) {
int tmp = vetor[j+1];
vetor[j+1] = vetor[j];
vetor[j] = tmp;
contador++;
}
}
if (contador == 0) {
break;
}
}
for (int i = 0; i < qteElementos; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println();
return;
}
}
Comments
Post a Comment