Thread Operationen auf Arrays -Frage-: Fragen zu shift und co. (16 answers)
Opened by sKy at 2007-05-01 22:55

sKy
 2007-05-01 22:55
#76343 #76343
User since
2006-12-05
10 Artikel
BenutzerIn
[default_avatar]
Ich wollte folgendes in Perl realisieren:

Hinweis: Quellelement ist immer das aktuelle erste Element

Algorithmus umgangsprachlich:
#######################################################################
#Quellelement der Ursprungsliste jeweils mit ALLEN Elementen vergleichen
#
#Kopiere wenn gleich alle gleichen inklusive Quellelement in @gleich
#
#Kopiere Quellelement in @ungleich
#
#
#
#Lösche Duplikate und Quellelement aus Ursprungsliste
########################################################
#
#Wenn ungleich kopiere nur Quellelement in @ungleich
#Lösche Quellelement aus Ursprungsliste

usw.


Hier mein Versuch der aber Mist ist
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for $quellelement(@satz) #Immer erstes Element
{
for $restelement(@satz) #alle anderen Elemente
{
if ($quellelement eq $restelement) #wenn gleich
{
push(@gleich,$quellelement); #Schreibe Quellelement in @gleich
push(@gleich,$restelement); #Schreibe alle anderen die mit dem aktuellen Quellelement identisch sind in @gleich
push(@ungleich,$quellelement);#Schreibe das Quellelement in @ungleich
shift(@satz,$restelement); #Lösche nun aus der Ursprungsliste das Quellelement
} #und die anderen gerade gefundenen identischen Elemente

else
{
push(@ungleich,$quellelement); #Schreibe das Quellelement in @ungleich
#Lösche das Quellelement aus der Ursprungsliste
}

}
}


Kann es jemand nachvollziehen und vielleicht eine bessere Lösung aufzeigen? Sollte allerdings auf Arrayebene sein.

Gruß
sKy\n\n

<!--EDIT|sKy|1178045763-->

View full thread Operationen auf Arrays -Frage-: Fragen zu shift und co.