Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako odstrániť duplicity z Array Perl

Perl a mnoho ďalších programovacích jazykov pomocou poľa pre ukladanie zoznamu dát . Avšak , Perl tiež podporuje špecifickú dátovú štruktúru nazvanú hash . Perl hash priraďuje určitú hodnotu s kľúčom . Príkladom je hash { Jan = > 31 dub = > 30 } , kde mesiac je kľúč a počet dní , je hodnota . Perl hash je možné vyvinúť jednoduchý algoritmus pre odstránenie duplicít z poľa . Zodpovedajúce podprogram má menej ako desať príkazov v jazyku Perl . Pokyny
Vytvorenie podprogramu " Remove_duplicates " " . Položky " Algoritmus
1

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 ;

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené