Hallo
Hier der gesamte Code der Sort funktion
@letterbox ist ein array, der die einzelnen Buchstaben des Inputs enthält, $num die Länge davon.
$c = 0 if ($a+$c > $num) kommt mit der last-abfrage ins gehegen, ist aber nicht unlösbar. (aber der Vorteil geht zumindest teilweise verloren)
$wasauchimmer =$num-$a; ist nicht nur vorteilhaft, da die Funktion, in der die Schleife sich befindet, noch viel öfter ausgeführt wird.
@new = sort bwtsort 0..($num-1);
sub bwtsort {
my $x = $letterbox[$a];
my $y = $letterbox[$b];
my $c = 1;
while ($x eq $y) {
$x .= $letterbox[($a+$c)%$num];
$y .= $letterbox[($b+$c)%$num];
$c++;
last if ($c>$num);
}
return ($x cmp $y)
}