[Cascavel-pm] Excluir valores repetidos dentro do Array

Marco A P D´Andrade mda em embratel.net.br
Quarta Agosto 18 12:56:03 CDT 2004


Dexter,

1. Pesquisar duplicados em um array pode ser muito lento, se houverem 
muitos valores, a não ser que vc implemente inserção ordenada.

2. A maneira mais simples seria usar um hash como índice:

my %Index;
my @Items;

unless ( exists($Index{$val}) ) {
    push(@Items, $val);
    $Index{$val} = $#Items;
 } else {
    $Items[$Index{$val}] = $val;
}

Haverá um inconveniente se a lista for muito grande, neste caso 
verifique splice e monte um algoritmo de pesquisa binária...

3. Cruzando hash de indice com tie, vc manteria os indices em disco, mas 
novamente, depende do tamanho da lista.


PS: talvez seja excessiva minha preocupação com tamanho, e um mero for 
para localizar resolva, mas tenho tido dados em volume bem consideravel 
e tomei o "vicio".


Sds,
Marco Antonio

dexter em ticbrasil.com.br wrote:

>Caros Monges,
>
>tenho um array que eu associei a uma coluna de um determinado arquivo, porem
>algumas vezes esses valores se repetem,
>
>como posso fazer para comparar cada valor com todos os do array e excluir
>esse valor do array.
>
>Muito Obrigado desde ja
>
>
>_______________________________________________
>Cascavel-pm mailing list
>Cascavel-pm em mail.pm.org
>http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
>
>





Mais detalhes sobre a lista de discussão Cascavel-pm