Thread Quicksort in Perl (9 answers)
Opened by perlnoob96 at 2013-12-12 07:22

clms
 2013-12-12 12:10
#172572 #172572
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
In Zeile 52-54 willst Du wohl die Inhalte von $a[$i] und $a[$j] tauschen. Dafür müsstest Du in Zeile 54 aber $j statt $i nehmen.

Hier wäre eine Stelle, die man mittels Array-Slices wirklich eleganter schreiben könnte: @a[$j,$i] = @a[$i,$j]; fasst Zeilen 52-54 in eine Zeile zusammen. Dito für Zeile 57-59.

Und falls Du doch mit einer Zwischenvariable arbeiten willst, deklariere sie im kleinst-möglichen Scope, also
Code (perl): (dl )
1
2
3
4
5
if ($i < $j) {
  my $t = $a[$i];
  $a[$i] = $a[$j];
  $a[$j] = $t;
}
statt der Zeilen 30, 50-55.
Das macht den Code übersichtlicher und wartbarer.
Last edited: 2013-12-13 12:33:31 +0100 (CET)

View full thread Quicksort in Perl