Tenho uma duvida e queria saber se vocês podem me ajudar, é o seguinte:
Tenho um exercício em que o usuário digita os nomes dos alunos e em seguida as notas.Ai isso é inserido numa matriz onde cada nome é inserido numa linha e as notas a frente (nas colunas).
Como que faço para colocar ela em ordem alfabética???Mover a linha e as notas dos alunos até ficar em ordem.
Fiz um algoritmo de ordenação em vetores unidimensionais e com numeros para ordenar em ordem crescente e decrescente.
Nesse caso é uma matriz e com Strings. Como que eu utilizo ele para esse caso???
n = qtd de elementos do vetor;
para i = 1; i < n; i++
auxiliar = vetor[i];
para j = i - 1; j >= 0 && vetor[j] > auxiliar; j--
vetor[j+1] = vetor[j];
vetor[j] = aux;
Entendi para que serve esse algoritmo de Insertion Sort.Mais ainda não entendi como poderei utilizar ele com Strings
e e matrizes.
Ele ira pegar o numero equivalente do char da String???
Cara é o seguinte, na classe string tem um metodo chamado compareTo(another String).
Estuda como funciona esse metodo e vai ficar facinho fazer a ordenação.
Dica: crie um metodo chamado
void sort(String[] s){
faz o insertion sort aki pra ordenar um vetor unidimensional e inves de vc usar o vetor[j] > auxiliar, vc usa vetor[j].compareTo(auxiliar)...
}
public static void main(String[] args){
String[][] seuvetor;
sort(seuvetor[0]);
sort(seuvetor[1]);
sort(seuvetor[2]);
sort(seuvetor[n]);
}
É só estudar esse metodo compareTo() q vc entende como faz rapidinho.
Intendi!
Eu uso o compareTo para ver qual String vem na frente de qual e uso o insertion sort para move-las. Mais você fez ai com vetor unidimensional, como faço com matriz? pq eu vou andar as linhas inteira da matriz na coluna 0 e ver qual é, mais como faço para que a linha inteira ^ ou v para que os valores(notas) vao indo de acordo com o individuo\cidadão.
Tipo. Não entendi essa parte em que você fez:
String[][] seuvetor;
sort(seuvetor[0]);
pq na hora em que você colocou no método sort só [] e não [][]???