Thread sort(2) - Array wird nicht richtig sortiert :-( (10 answers)
Opened by pktm at 2008-04-02 00:31

pktm
 2008-04-02 00:31
#107710 #107710
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich möchte mir gerne eine eigene sort-Funktion schreiben.
Dazu möchte ich eine eigene Funktion schreiben, die zwei Nummern vergleicht. Allerding reicht da eine einfache größer-kleiner-Funktion incht aus, denn bei bestimmten Nummern müssen die beiden zusätzlich übergebenen Datenstrukturen gefilzt werden.
Aber davon mal ganz abgesehen habe ich das Problem, dass die Methode nicht richtig sortiert, oder zumindest habe ich es falsch geschrieben.

Der "triviale" Fall ist nämlich in der Tat, dass einfach nur zwei Nummern verglichen und davon die kleinere vorgezogen werden soll.

Aber das Array wird falsch gerum ausgegeben.
Klar kann ich jetzt einfach aus dem < ein > machen, aber ich würde doch ganz gerne verstehen, warum das Array sorum sortiert wird.

Hier mein
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use strict;
use warnings;
use Perl6::Say;
use Data::Dumper qw/Dumper/;

my $t_order = [];
my $nt_order = [];
my @class = qw(5 4 3 6 1);
say "sort leftof (@class): " . join ":", (sort {sort_leftof($a, $b, $t_order, $nt_order)} @class);

sub sort_leftof {
my $x1 = shift;
my $x2 = shift;
my $t_order = shift;
my $nt_order = shift;

if( $x1 < 500 and $x2 < 500 ) {
$x1 < $x2;
}

} # /sort_leftof


Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread sort(2) - Array wird nicht richtig sortiert :-(