Creación de un subprograma " Remove_duplicates , " un algoritmo
1
obtener datos de la matriz y declarar un hash "entradas ". Otra matriz llamada " new_array " contendrá los datos no duplicados . Los pasos 1-5 se ilustran con el código Perl en la Sección 2 , Paso 3 .
2
Asignar todos los elementos de la matriz como las claves hash y asignar valores hash igual a 1 para todas las teclas .
3
bucle a través de todos los elementos de la matriz y comprobar el valor hash asociado a este elemento .
4
Si el valor hash es 1 ( ver paso 3 ), el elemento es original o no duplicado y debe añadirse a " new_array . " En el mismo tiempo, este elemento está marcado , es decir, los cambios en el valor de hash a 0
5
Si el valor hash es 0 , entonces este elemento ha sido ya encontrado ; . Es decir, se duplica y se omitirá < . br>
Ejemplo y Perl Programa
6
Eliminar duplicados de la matriz con los elementos ( 1 2 6 7 2 9 1 2 6 ) .
7
Imprimir las matrices iniciales y finales ( sin duplicados )
8
# Sección 1 # subrutina comienza
sub remove_duplicates { my ($ array , $ new_array ) = @ _ ; . Paso # 1 . Leer % entradas arraymy iniciales = () ; # Paso 1 . Declarar el hash
foreach (@ $ array ) { a continuación si existe las entradas de $ $ _ { } $ ; entradas { $ _} = 1 , # Paso 2 }
foreach ( $ array @ ) {# Paso 3 . Recorrer toda la gama elementsif ( entradas de $ $ _ { }) { # Paso 5 . El elemento se omite si el valor hash es 0.push @ $ new_array , $ _ ; # Paso 4 . Agregar un elemento a la nueva matriz sólo si el valor hash es $ 1 entradas {$ _} = 0 , # Paso 4 . El elemento está marcado , es decir cambiar el valor hash a 0. } } }
# Subrutina Ends
# Sección 2MY $ array = [ qw ( 1 2 6 7 2 9 1 2 6 ) ] ; # Paso 1 : un ejemplo arraymy $ new_array = [ ] ; # remove_duplicates ( $ array , $ new_array ) ; print " @ $ array \\ n" # Paso 2 . Impresión arrayprint inicial " @ $ new_array \\ n"; # imprimir arrayexit final;