Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Perl Programming >> .

Come rimuovere i duplicati da array Perl

Perl e molti altri linguaggi di programmazione utilizzano gli array per memorizzare un elenco di dati . Tuttavia, Perl supporta anche una struttura di dati specifico chiamato un hash . A Perl associa un particolare valore hash con una chiave . Un esempio è l' hash { gen = > 31 , aprile = > 30 } , in cui un mese è una chiave e un numero di giorni è un valore . Un hash Perl rende possibile lo sviluppo di un semplice algoritmo per rimuovere i duplicati da un array . La corrispondente subroutine ha meno di dieci comandi in Perl .
Istruzioni Creazione di un sottoprogramma " Remove_duplicates ; " di un algoritmo di
1

ottenere dati di array e di dichiarare un hash " voci ". Un altro array chiamato " new_array " conterrà i dati non duplicati . Punti da 1 a 5 sono illustrati con il codice Perl dato nella sezione 2 , punto 3.
2

Assegnare tutti gli elementi dell'array come chiavi hash e assegnare valori di hash uguale a 1 per tutti i tasti .

3

ciclo su tutti gli elementi dell'array e verificare il valore hash associato a questo elemento .
4

Se il valore hash è 1 (vedi punto 3 ), allora la elemento è originale o non duplicati e dovrebbe essere aggiunto alla " new_array . " Nello stesso tempo, questo elemento è segnato , cioè il valore di hash passa a 0
5

Se il valore hash è 0 , allora questo elemento è stato già incontrato , . Cioè è duplicato e saltato < . br>
Esempio e Perl Programma
6

rimuovere i duplicati dalla matrice con elementi ( 1 2 6 7 9 2 1 2 6) .
7

Stampa array iniziale e finale ( senza duplicati ) economici 8

# Sezione 1 # Subroutine Begins

sub remove_duplicates {my ( $ array , $ new_array ) = @ _; . # Passo 1 . Leggi le voci % arraymy iniziali = () ; # Step 1 . Dichiarare l'hash

foreach ( @ $ array ) { next if exists $ voci { $ _ } ; $ voci { $ _ } = 1; # Step 2 }

foreach ( $ array @ ) { # Passo 3 . Il ciclo di tutti matrice elementsif ( $ voci { $ _ } ) { # Punto 5 . L'elemento viene saltato se il valore hash è 0.push @ $ new_array , $ _ ; # Fase 4 . Aggiungere un elemento al nuovo array solo se il valore hash è di $ 1 voci { $ _ } = 0; # Fase 4 . L'elemento è contrassegnato cioè modificare il valore hash a 0 . }

}}

# Subroutine Ends

# Sezione 2MY $ array = [ qw ( 1 2 6 7 2 9 1 2 6) ] ; # Step1 : un esempio arraymy $ new_array = []; # remove_duplicates ( $ array , $ new_array ) ; print " @ $ array \\ n"; # ​​Passo 2 . Stampa arrayprint iniziale " @ $ new_array \\ n"; # ​​stampa arrayexit finale ;

 

Programmazione © www.354353.com