Se cada linha é uma permutação e você quer remover as permutações
repetidas, isso significa que você quer remover as linhas repetidas?
Se não for isso, por favor, poste uma entrada de exemplo e a saída
desejada para facilitar as coisas. ;-)
O programa em C é necessário? Porque certamente terá algo no terminal
do Linux que vai te ajudar, mas aí te indicaria uma boa lista de shell
script [1].
Um abraço.
[1] http://br.groups.yahoo.com/group/shell-script/
Att,
Fernando Mercês
Linux Registered User #432779
www.mentebinaria.com.br
softwarelivre-rj.org
@MenteBinaria
------------------------------------
II Hack'n Rio - 23 e 24/11
hacknrio.org
------------------------------------
2012/2/13 ajob <antonio...@gmail.com>:
> --
> Antes de enviar um e-mail para o grupo leia:
> http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
> --~--~---------~--~----~---------------------------------~----------~--~----~
> [&] Colabore com a Pesquisa de Preferência de Conteúdo
> para Eventos do Grupo C & C++ Brasil:
> http://www.surveymonkey.com/s/GBBGTXN
> ------~----~-------~---~---~---~---~----------------~------------~---------~
> [&] C & C++ Brasil - http://www.ccppbrasil.org/
> Para sair dessa lista, envie um e-mail para
> ccppbrasil-...@googlegroups.com
> Para mais opções, visite http://groups.google.com/group/ccppbrasil
> --~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
> Emprego & carreira: vag...@ccppbrasil.org
> http://groups.google.com/group/dev-guys?hl=en
No prompt do Linux voc� tem algumas alternativas:
$ uniq arquivo.txt
Exibe o arquivo eliminando duplicidades em linhas seguidas
$ sort -u arquivo.txt
Exibe o arquivo ordenando e eliminando todas as duplicidades
$ awk '!a[$0]++' arquivo.txt
Exibe o arquivo eliminando todas as duplicidade e sem ordenar
Para replicar a primeira alternativa � muito f�cil, basta guardar a
linha anterior em um buffer separado e comparar a linha atual com a
anterior por meio da fun��o strcmp.
Quanto a segunda e terceira alternativas, eu j� fiz isso com C
utilizando �rvore, voc� l� as linhas do arquivo e vai adicionando na
�rvore e quando ainda n�o o foi voc� grava no arquivo de destino (que
pode ser a sa�da padr�o), ou ent�o percorre a �rvore no final se a
inten��o for ordenar o arquivo. Utilizando uma tabela de hash � mais
eficiente mas s� serve para a terceira alternativa (que � como o awk
faz), pesquise sobre estas estruturas de dados.
Em C++ � mais f�cil pois n�o � necess�rio escrever o algoritmo de
�rvore, basta utilizar o std::set para armazenar as linhas.
Marcio.
Em 13/2/2012 15:22, ajob escreveu:
Meu problema é simples... Eu tenho um arquivo txt no qual cada linha é
uma permutação de uma quantidade fixa de números. Gostaria de criar um
programa, de preferencia em C, mas pode ser em C++, que remova todas as
permutações repetidas do arquivo.... Queria ajuda... Alguém poderia me
No prompt do Linux você tem algumas alternativas:dizer se já existe algo implementado que faz isso, ou como eu posso
fazer isso...
Obrigado,
Josefran
$ uniq arquivo.txt
Exibe o arquivo eliminando duplicidades em linhas seguidas
$ sort -u arquivo.txt
Exibe o arquivo ordenando e eliminando todas as duplicidades
$ awk '!a[$0]++' arquivo.txt
Exibe o arquivo eliminando todas as duplicidade e sem ordenar
Para replicar a primeira alternativa é muito fácil, basta guardar a
linha anterior em um buffer separado e comparar a linha atual com a
anterior por meio da função strcmp.
Quanto a segunda e terceira alternativas, eu já fiz isso com C
utilizando árvore, você lê as linhas do arquivo e vai adicionando na
árvore e quando ainda não o foi você grava no arquivo de destino (que
pode ser a saída padrão), ou então percorre a árvore no final se a
intenção for ordenar o arquivo. Utilizando uma tabela de hash é mais
eficiente mas só serve para a terceira alternativa (que é como o awk
faz), pesquise sobre estas estruturas de dados.
Em C++ é mais fácil pois não é necessário escrever o algoritmo de
árvore, basta utilizar o std::set para armazenar as linhas.
Marcio.
--
Antes de enviar um e-mail para o grupo leia: http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] Colabore com a Pesquisa de Preferência de Conteúdo para Eventos do Grupo C & C++ Brasil:
http://www.surveymonkey.com/s/GBBGTXN
------~----~-------~---~---~---~---~----------------~------------~---------~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-unsubscribe@googlegroups.com
Os comandos do shell foram para exemplificar os diversos resultados que
Tem que ver se o professor vai aceitar usar comandos do shell.
se pode entender por "remova todas as permutações repetidas do arquivo"