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
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-->