Programação  
 
Conhecimento computador >> Programação >> Programação Perl >> 
Como remover duplicatas de matriz Perl
Perl e muitas outras linguagens de programação usar matrizes para armazenar uma lista de dados. No entanto , Perl também suporta uma estrutura de dados específica chamada hash. Um hash Perl associa um determinado valor com uma chave. Um exemplo é o hash { Janeiro = > 31 , Apr = > 30 } , em que um mês é uma chave e um certo número de dias, é um valor . Um hash Perl torna possível o desenvolvimento de um algoritmo simples para remover duplicatas de uma matriz. A sub-rotina correspondente tem menos de dez comandos em Perl. Instruções
Criando uma sub-rotina " Remove_duplicates ; " " . Entradas " um algoritmo
1

Obter dados da matriz e declarar um hash Outra matriz chamada " new_array " conterá os dados não- duplicados. Passos 1 a 5 são ilustrados com o código Perl dada na Seção 2, Passo 3 .
2

Atribuir todos os elementos da matriz como as chaves de hash e atribuir valores de hash iguais a 1 para todas as chaves .

3

loop através de todos os elementos do array e verificar o valor de hash associado a este elemento.
4

Se o valor de hash é 1 ( consulte a Etapa 3 ), então o elemento é original ou não duplicada e deve ser adicionado ao " new_array . " Ao mesmo tempo, este elemento é marcado ; . Isto é, o valor de hash muda para 0
5

Se o valor de hash é 0, então este elemento já foi encontrado; . Ou seja, ele é duplicado e ignorados

Exemplo e Programa Perl
6

Remover duplicados a partir da matriz com os elementos ( 1 2 6 7 2 9 1 2 6).
7 < p . > Imprimir matrizes iniciais e finais ( sem duplicação)
8

# Seção 1 # sub-rotina começa

sub remove_duplicates { my ($ array, $ new_array ) = @ _ ; # Etapa 1 . Leia entradas iniciais arraymy % = (); # Passo 1 . Declare o hash

foreach ( @ $ array ) { próximo se houver $ entradas { $ _ } ; $ entradas { $ _ } = 1; # Passo 2 }

foreach ( @ $ array ) { # Passo 3 . Loop através de todos elementsif array ( $ entradas { $ _ } ) { # Passo 5 . O elemento é ignorado se o valor hash é 0.push @ $ new_array , $ _ ; # Passo 4 . Adicione um elemento para a nova matriz apenas se o valor hash é 1 $ entradas { $ _ } = 0; # Passo 4 . O elemento é marcado ou seja, alterar o valor de hash para 0. } }}


# Subrotina Termina

# Seção $ 2O My array = [ qw (1 2 6 7 2 9 1 2 6 ) ]; # Passo 1: um exemplo arraymy $ new_array = []; # remove_duplicates ( $ array , $ new_array ); print " @ $ array \\ n"; # ​​Passo 2 . Imprimindo arrayprint inicial "@ $ new_array \\ n"; # ​​imprimir arrayexit final;

Anterior :

Próximo : No
  Os artigos relacionados
·Como converter UTF-8 para UTF- 16 em Perl 
·Que Scripts Do SQL Perl Do 
·Perl Script Tutorial Arquivo 
·Como incluir um PerlScript em um documento HTML 
·Como Verificar se há uma data válida em Perl 
·Como chamar rotinas de montagem de Perl 
·Variáveis ​​classe de nível em Perl 
·Como passar parâmetros para sub-rotinas em Perl 
·Como analisar um valor em Perl 
·Como depurar scripts Perl 
  Artigos em destaque
·Códigos PHP em Sintaxe JavaScript 
·Como fazer uma pirâmide de caracteres usando Java 
·Java Tutorial para Dividir Cordas 
·Como abrir arquivos yenc 
·NetBeans Tutorial Web Service 
·Como limitar a 100 palavras em PHP 
·Teste de unidade no Visual Studio Team System 
·Como exportar ASP.NET DataGrid para Excel 
·Como converter Float para String em C + + 
·Como se um deslocamento de Cordas em um arquivo no CPP 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados