Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
získať dáta poľa a vyhlásiť hash Ďalšie pole s názvom " new_array " bude obsahovať non - duplicitné dáta . Kroky 1 až 5 sú znázornené s Perl kód uvedený v § 2 , krok 3.
2
Priradiť všetky prvky poľa ako hash kľúča a priradiť hodnoty hash rovný 1 pre všetky kľúče .
3
slučka cez všetky prvky poľa a skontrolujte hodnotu hash spojené s týmto prvkom .
4
Ak je hodnota hash je 1 ( pozri krok 3 ) , potom prvok je originál alebo neopakujú a mali by byť pridané do " new_array . " V rovnakej dobe sa takto označené prvok ; . , Tj . Hodnotu hash zmien 0
5
Ak hodnota hash je 0 , potom tento prvok bol už stretli , . To znamená , že je duplicitné a preskočí
Príklad a Perl Program
6
Odstránenie duplicitných z poľa s prvkami ( 1 2 6 7 2 9 1 2 6 ) .
7 < p . > Tlač počiatočné a konečné polia ( bez duplicít )
8
# Oddiel 1 # Podprogram začína
čiastkové remove_duplicates { my ( $ array , $ new_array ) = @ _ ; # Krok 1. . Prečítajte si pôvodné záznamy arraymy % = ( ) ; # Krok 1. Vyhlásiť hash
foreach ( @ $ pole ) { ďalšie, ak existuje $ položky { $ _ } , $ hodnotami { $ _ } = 1 ; # Krok 2 }
foreach ( @ $ pole ) { # Krok 3. Slučka cez všetky polia elementsif ( $ prihlášok { $ _ } ) { # Krok 5. Prvok je vynechaný Ak hash hodnota je 0.push @ $ new_array , $ _ ; # Krok 4. Pridať prvok do nového poľa iba vtedy , ak hash hodnota je $ 1 položky { $ _ } = 0 ; # Krok 4. Prvok je označený tj zmeniť hodnotu hash na 0. }
} }
# podprogramov Koniec
# § 2my $ array = [ qw ( 1 2 6 7 2 9 1 2 6 ) ] ; # Krok 1 : Príklad arraymy $ new_array = [ ] ; # remove_duplicates ( $ array , $ new_array ) ; print " @ $ array \\ n" ; # Krok 2. Tlač počiatočné arrayprint " @ $ new_array \\ n" ; # tlače konečnej arrayexit ;