Galera preciso criar um algoritmo para ordenar uma lista de strings, porem
preciso do algoritmo, alguem sabe por onde posso começar?, ja to tentando isso
faz uns 5 dias heheh;… grato
Post o que vc já fez para podermos analisar e te ajudar.
Bem se for nomes você pode pegar o código de cada caracter desse nome e somá-los,
e ordenar as strings pela soma dos caracteres.
Procure por algorítmo da bolha, Quick sort, Merge sort ou Heap sort. Todos fazem ordenação.
Para comparar duas Strings, use o método compare, da própria classe String. Ele gera um resultado mais consistente do que a sugestão do Wenderson, que provavelmente gerará uma ordenação sem muito sentido para o usuário.
Bom com disse o nosso amigo ViniGodoy, existem alguns algoritimos para você fazer ordenação.
Mas o bom do Java é utilizar o que ele já oferece de melhor para essa solução sem você praticamente fazer nada e utilizar do conceito de coleções.
Acho que quem vai poder te ajudar mais é utilizar uma coleção do tipo List, usando um ArrayList. E utilizar um método sort, que já vem por herança.
Da uma estudada sobre isso que você vai ver como isso pode te ajudar muito.
Blz
Falow boa semana a todos.
att
Romildo Jozue Paiter
O método sort não vem por herança. Ele está na classe Collections e não na classe Collection (que é pai de ArrayList). Tanto que é usado assim:
Collections.sort(suaLista);
Para arrays também existe o método sort, mas na classe Arrays:
Arrays.sort(seuArray);
Mas como o próprio autor do tópico disse que precisa do algorítmo em si, e não só de um método pronto, resolvi postar ali os métodos de ordenação conhecidos. Ele agora que escolha um e implemente.
Outra opção é ver como esses métodos são implementados nos fontes do Java.
PS: Para uma ordenação baseada no alfabeto, é bom usar um comparador que leve em consideração a lingua sendo utilizada. O Java possui uma classe para isso, chamada Collator:
List<String> lista = new ArrayList<String>();
lista.add("Zênite");
lista.add("Ângston");
lista.add("amarelo");
lista.add("Amasiado");
lista.add("Zebra");
lista.add("Banana");
lista.add("baba");
lista.add("Babá");
//Ordena pela tabela unicode.
Collections.sort(lista);
System.out.println(lista);
//Ordena de acordo com o dicionário
Collections.sort(lista, Collator.getInstance());
System.out.println(lista);
Valew Vini, obrigado pela correção…
E o Nosso amigo ganhou já o código, e é como vc disse. Vai dele usar essa dica ou Implementar seu próprio método.
att
Romildo Paiter
Mais interessante é ver como isso fica no .net:
IList<String> ordenadas =
(from s in lista
orderby s
select s).toList();
Ou, com a sintaxe do lambda:
IList<String> ordenadas = lista.Orderby(x => x).toList();
A Ordenação, fica assim:
O Usuário Digita os Nomes e Ele Mostrar a Ordem por Digitação e a Ordem Alfabética do Nomes Digitados:
import java.text.Collator;
import java.util.;
import javax.swing.;
import java.util.Scanner;
public class Alunos {
public static void main(String[] args) {
Scanner ord = new Scanner(System.in);
System.out.println("Digite o 1º Numero: ");
String n1 = ord.next();
System.out.println("Digite o 2º Numero: ");
String n2 = ord.next();
System.out.println("Digite o 3º Numero: ");
String n3 = ord.next();
System.out.println("Digite o 4º Numero: ");
String n4 = ord.next();
System.out.println("Digite o 5º Numero: ");
String n5 = ord.next();
System.out.println("Digite o 6º Numero: ");
String n6 = ord.next();
System.out.println("Digite o 7º Numero: ");
String n7 = ord.next();
System.out.println("Digite o 8º Numero: ");
String n8 = ord.next();
System.out.println("Digite o 9º Numero: ");
String n9 = ord.next();
System.out.println("Digite o 10º Numero: ");
String n10 = ord.next();
List<String> lista = new ArrayList<String>();
lista.add(" "+n1);
lista.add(" "+n2);
lista.add(" "+n3);
lista.add(" "+n4);
lista.add(" "+n5);
lista.add(" "+n6);
lista.add(" "+n7);
lista.add(" "+n8);
lista.add(" "+n9);
lista.add(" "+n10);
//Ordena pela tabela unicode.
Collections.sort(lista);
System.out.println("Lista de Nomes Digitados: "+lista);
//Ordena de acordo com o dicionário
Collections.sort(lista, Collator.getInstance());
System.out.println("Lista Ordenada: "+lista);
}
}
[quote=Rhomullo]A Ordenação, fica assim:
O Usuário Digita os Nomes e Ele Mostrar a Ordem por Digitação e a Ordem Alfabética do Nomes Digitados:
import java.text.Collator;
import java.util.;
import javax.swing.;
import java.util.Scanner;
public class Alunos {
public static void main(String[] args) {
Scanner ord = new Scanner(System.in);
System.out.println("Digite o 1º Numero: ");
String n1 = ord.next();
System.out.println("Digite o 2º Numero: ");
String n2 = ord.next();
System.out.println("Digite o 3º Numero: ");
String n3 = ord.next();
System.out.println("Digite o 4º Numero: ");
String n4 = ord.next();
System.out.println("Digite o 5º Numero: ");
String n5 = ord.next();
System.out.println("Digite o 6º Numero: ");
String n6 = ord.next();
System.out.println("Digite o 7º Numero: ");
String n7 = ord.next();
System.out.println("Digite o 8º Numero: ");
String n8 = ord.next();
System.out.println("Digite o 9º Numero: ");
String n9 = ord.next();
System.out.println("Digite o 10º Numero: ");
String n10 = ord.next();
List<String> lista = new ArrayList<String>();
lista.add(" "+n1);
lista.add(" "+n2);
lista.add(" "+n3);
lista.add(" "+n4);
lista.add(" "+n5);
lista.add(" "+n6);
lista.add(" "+n7);
lista.add(" "+n8);
lista.add(" "+n9);
lista.add(" "+n10);
//Ordena pela tabela unicode.
Collections.sort(lista);
System.out.println("Lista de Nomes Digitados: "+lista);
//Ordena de acordo com o dicionário
Collections.sort(lista, Collator.getInstance());
System.out.println("Lista Ordenada: "+lista);
}
}
[/quote]
Por, favor, antes de responder novamente leia as regras do fórum e leia os Posts que estão fixos nos fórum. Eles irão lhe ajudar na sobrevivência no GUJ.
Da próxima vez que responder, leve em consideração a data de criação do Post e se o mesmo já não foi respondido de forma satisfatória, como foi o caso desse aqui.
Enfim, não ressucite tópicos que á estão mortos ou já foram resolvidos, a não ser que seja para reviver a dúvida e incrementar alguma coisa realmente nova na questão. Ainda assim seria bom estudar a possibilidade de criar um POst novo.
Abs [] e bem vindo ao GUJ.