Dúvida em programa java!

4 respostas
G

Pessoal estou com um problema. Tenho que ordenar um arquivo com 500.000 registros, mas esse arquivo não cabe na memória, daí preciso dividi-lo em 5 unidades, cada uma com 100.000 registros, pois é o máximo que cabe na memória. Até aí tudo bem, consegui dividir em 5 unidades com 100.000 registros cada. Mas agora eu preciso ordenar cada unidade dessa, sendo que os registros possuem 5 campos cada e é necessário ordenar pelo 4º campo, que é uma string. Depois de ordenar cada unidade com 100.000 registros cada, tenho que mesclar, usar o mergeSort nessas 5 unidades para formar um único arquivo ordenado com os 500.000 registros. Detalhe, o campo que preciso ordenar em cada unidade é o 4º e é uma string. Gostaria muito da ajuda de vocês. Qualquer coisa posso postar o código que fiz até dividir nas 5 unidades. Desde já agradeço a atenção de todos. Ah, lembrando que tem que ser em java :slight_smile:

4 Respostas

romarcio

Cria um método de ordenação em uma coleção como Collection ou List. Dai é só ler o arquivo e passar todo ele para dentro da coleção, a própria coleção ordena e então você salva novamente o arquivo a partir dessa coleção.
Se não sabes como ordenar uma lista, pesquise no google pela interface java.util.Comparator.
Talvez na própria busca do fórum você encontre algo.

Vinicius_Zibetti_Res

Cara não adianta ficar criando varios topicos com o mesmo conteúdo, acho que não pode fazer isto aqui no GUJ.

Rodrigo_Sasaki

Que estranho, como você está lendo esse arquivo?

500 mil registros não são tanta coisa assim hoje em dia, a não ser que você tenha pouca memória, mas em todo caso posta aqui seu algoritmo e a gente vê se consegue te ajudar.

G

E aí Digao, na verdade é apenas uma simulação, meu professor passou essa exercício, e é pra gente fazer simulando que a memória só cabe 100.000 registros. Minha dúvida maior é como eu ordenado as 5 unidades separadamente. Eu criei 5 vetores com todas os 100.000 registros de cada unidade, mas tenho que ordenar pelo 4º campo. Quero usar o quickSort em cada vetor, só que os vetores estarão cada linha com 5 campos e tenho que ordena-los pelo quarto campo.

Criado 3 de outubro de 2012
Ultima resposta 4 de out. de 2012
Respostas 4
Participantes 4