Olá novamente, continuando com a série de Estrutura de Dados,
hoje vou falar sobre ordenação.
Problema: Precisa-se que ordene um array de 20 nomes em ordem alfabética.
Resolução:
Primeiro temos que criar um array de 20 posições para
resolução do problema:
String nomes[] = new String [20];
Após isso, vamos solicitar ao usuário que informe os 20 nomes.
Como já expliquei essa parte de solicitar ao usuário utilizando a classe Scanner,
não vou entrar em mais detalhes nela. (Caso você queira entender um pouco melhor,
tem no meu post sobre Conversão de minutos para horas e minutos
(https://goo.gl/nQ0QEX)
Scanner sc = new Scanner(System.in);
for(int i=0;i<nomes.length;i++){
System.out.println("Digite o nome");
nomes[i] = sc.next();
}
//Somente para mostrar, que foi salvo os nomes
for(String valores:nomes){
System.out.println(valores);
}
//Agora, independente da ordem que o usuário informou precisamos ordenar,
//e utilizaremos o algoritmo BubbleSort (ou conhecido também como:
Algoritmo Bolha)
* for (int i = 0; i < nomes.length - 1; i++)
for (int j = i + 1; j < nomes.length; j++)
if (nomes[i].compareTo(nomes[j]) > 0) {
String temporario = nomes[i];
nomes[i] = nomes[j];
nomes[j] = temporario;
}
for(String nomesOrdenados:nome){
System.out.println(nomesOrdenados);
}
* O algoritmo bolha, irá verificar de dois em dois se os elementos são maiores
ou menores entre eles, caso o primeiro elemento seja maior que o segundo
(o método compareTo irá retornar um número positivo (maior que 0(zero))).
Para a comparação entre os dois elementos, eu utilizo dois for's encadeados,
sendo que o segundo, irá iteirar + 1 com o índice do primeiro for, para que
consiga ler o próximo elemento.
nomes.lenght-1 - É para que o índice da variável j não passe do maior número
do array, e não lance uma exceção ArrayIndexOutOfBoundsException.
Assim independente da ordem que o usuário for passar os nomes, o algoritmo irá
verificar caractere por caractere e ordenando de forma alfabética.
Este código e outros estão disponíveis no meu github, caso queira analisar, basta clicar no link abaixo:
Projeto Ordenação - Bolha
Até + ;)
devhiranneri.eti.br
Nenhum comentário:
Postar um comentário