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

Popular posts from this blog

(Coderbyte) Dash Insert II - Solução

(Coderbyte) Run Length - Solução

(Coderbyte) Counting Minutes I - Solução