Selection Sort
É um algoritmo de ordenação simples, o qual verifica qual é o menor
elemento no vetor e o coloca na primeira posição. Em seguida, verifica
qual é o segundo menor elemento e o coloca na segunda posição, e assim
sucessivamente até os últimos elementos.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
Main ordenacao = new Main();
ordenacao.ordena();
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 ordena() throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int qteNumeros = leitor(br);
/* lê valores de entrada */
int[] vetor = new int[qteNumeros];
for (int i = 0; i < qteNumeros; i++) {
vetor[i] = leitor(br);
}
int menor = 2147483647; // maior número permitido para int
int indiceDoMenor = -1;
for (int i = 0; i < qteNumeros; i++) {
for (int j = i; j < qteNumeros; j++) {
if (vetor[j] < menor) {
menor = vetor[j];
indiceDoMenor = j;
}
}
int tmp = vetor[i];
vetor[i] = vetor[indiceDoMenor];
vetor[indiceDoMenor] = tmp;
menor = 2147483647;
}
for (int i = 0; i < qteNumeros-1; i++) {
System.out.print(vetor[i] + " ");
}
System.out.println(vetor[qteNumeros-1]);
return;
}
}
Comments
Post a Comment