Para pegar bem o conteúdo desta aula, resolvi fazer o mesmo exercício só que com as cartas de baralho.
package OrdenandoCartas;
public class Carta {
private String naipe;
private int numero;
public Carta(String naipe, int numero) {
this.naipe = naipe;
this.numero = numero;
}
public String getNaipe() {
return naipe;
}
public int getNumero() {
return numero;
}
public void setNaipe() {
this.naipe = naipe;
}
public void setNumero() {
this.numero = numero;
}
}
package OrdenandoCartas;
public class TestaMenorCarta {
public static void main(String[] args) {
Carta cartas[] = {
new Carta("Copas", 7),
new Carta("Copas", 4),
new Carta("Copas", 10),
new Carta("Copas", 2),
new Carta("Copas", 8)
};
int maisBaixa = buscaMenor(cartas, 0, 4);
System.out.println(maisBaixa);
System.out.println("A carta mais baixa é a de numero " + cartas[maisBaixa].getNumero() + " do naipe de " + cartas[maisBaixa].getNaipe());
}
private static int buscaMenor(Carta[] cartas, int inicio, int termino) {
int maisBaixa = inicio;
for(int atual= inicio; atual <= termino; atual++) {
if(cartas[atual].getNumero() < cartas[maisBaixa].getNumero()) {
maisBaixa = atual;
}
}
return maisBaixa;
}
}
package OrdenandoCartas;
public class TestandoOrdenaçãoDeCartas {
public static void main(String[] args) {
Carta cartas[] = {
new Carta("Copas", 7),
new Carta("Copas", 4),
new Carta("Copas", 10),
new Carta("Copas", 2),
new Carta("Copas", 8)
};
for(int atual = 0;atual < cartas.length;atual++) {
int menor = buscaMenor(cartas, atual, cartas.length - 1);
Carta cartaAtual = cartas[atual];
Carta cartaMenor = cartas[menor];
cartas[atual]= cartaMenor;
cartas[menor]= cartaAtual;
}
for(Carta carta : cartas) {
System.out.println("A carta de número " + carta.getNumero() + " e de naipe " + carta.getNaipe() + ".");
}
}
private static int buscaMenor(Carta[] cartas, int inicio, int termino) {
int maisBaixa = inicio;
for(int atual= inicio; atual <= termino; atual++) {
if(cartas[atual].getNumero() < cartas[maisBaixa].getNumero()) {
maisBaixa = atual;
}
}
return maisBaixa;
}
}