Insertion Sort em Array de Strings não ordena
Boa tarde gente! Estou tendo problemas na parte de ordenação do meu código.
Basicamente o objetivo dele é pegar uma Array de String com 1000 posições e ordenar o campo “Ratings” (campo=2 da string que é float) e ordena-los com o Insertion Sort.
Desde já agradeço se puderem me dar uma luz.
Basicamente o objetivo dele é pegar uma Array de String com 1000 posições e ordenar o campo “Ratings” (campo=2 da string que é float) e ordena-los com o Insertion Sort.
Desde já agradeço se puderem me dar uma luz.
String[] escolhedora(String[] ordenada) { int i, j; float atualAux, anteriorAux; String[] atual, anterior, tmp2; String tmp; for (i = 1; i < tamN; i++) { atual = ordenada[i].split(","); atualAux = Float.parseFloat(atual[campo]); anterior = ordenada[i - 1].split(","); anteriorAux = Float.parseFloat(anterior[campo]); j = i; while (j > 0 && anteriorAux > atualAux) { atual = ordenada[i].split(","); atualAux = Float.parseFloat(atual[campo]); anterior = ordenada[i - 1].split(","); anteriorAux = Float.parseFloat(anterior[campo]); tmp = ordenada[j]; ordenada[j] = ordenada[j - 1]; ordenada[j - 1] = tmp; j--; } } for (i = 0; i < tamN; i++) { tmp2 = ordenada[i].split(","); System.out.println(tmp2[campo]); } return ordenada; }
Mathews
Curtidas 0
Respostas
Ricardo Pestana
05/04/2019
bom dia,
posta a chamada desse método, e se possível com um exemplo do array que vc passa como parâmetro ...
abraço,
posta a chamada desse método, e se possível com um exemplo do array que vc passa como parâmetro ...
abraço,
GOSTEI 0
Mathews
05/04/2019
bom dia,
posta a chamada desse método, e se possível com um exemplo do array que vc passa como parâmetro ...
abraço,
posta a chamada desse método, e se possível com um exemplo do array que vc passa como parâmetro ...
abraço,
Bom dia!
Chamada do Metodo:
void leEOrdena(File arquivo) throws FileNotFoundException, IOException { // Cria vetor, gera TAMANHON valores aleatorios e os coloca em ordem crescente para ler as respectivas linhas do arquivo int vetor1[] = geraRandom(); ordenaVet(vetor1); // Le as linhas do arquivo e armazena no array de String "str", onde cada posição da str é uma linha do arquivo String[] str = leArquivo(vetor1); // Ordena o Array de Strings "str" baseado no campo (2-Ratings) que é um valor estático passado anteriormente para o construtor String[] ordenada = escolhedora(str); }
Exemplo do que está no arquivo ratings.csv para ser lido:
userId,movieId,rating,timestamp
1,31,2.5,1260759144
1,1029,3.0,1260759179
1,1061,3.0,1260759182
1,1129,2.0,1260759185
1,1172,4.0,1260759205
1,1263,2.0,1260759151
1,1287,2.0,1260759187
1,1293,2.0,1260759148
1,1339,3.5,1260759125
São 100.005 linhas com esse tipo de dado .csv. A ideia do programa é ler 1000 linhas aleatórias do csv, armazenar numa string e ordenar essa string com o InsertionSort. O erro tá sendo só na parte de ordenar a string mesmo.
GOSTEI 0