Fórum Insertion Sort em Array de Strings não ordena #601642
05/04/2019
0
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
Curtir tópico
+ 0
Responder
Posts
06/04/2019
Ricardo Pestana
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,
Responder
Gostei + 0
06/04/2019
Mathews
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.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)