/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
sotering af liste
Fra : martin lohse


Dato : 29-09-01 14:18

Hvordan kommer man ud over sotering af denne liste af tal !

efter sotering skulle det gerne ende sådan.
Hvilken soterings metode skal jeg bruge ?

1.1;(0) Hej;
1.1.1;(1) sv. hej (sv. 0);
1.1.1.1;(2)sv. sv. hej (sv. 1);
1.1.1.2;(4) sv. sv. hej (sv. 1);
1.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)
1.1.1.3;(5) sv. sv. hej (sv. 1);
1.1.2;(3) sv. hej (sv. 0);
1.1.2.1; (7) (sv. 3)
1.1.3; (8) (sv. 0)
1.1.1.4; (9) (sv. 1)

2.1;(0) Hej;
2.1.1;(1) sv. hej (sv. 0);
2.1.1.1;(2)sv. sv. hej (sv. 1);
2.1.1.2;(4) sv. sv. hej (sv. 1);
2.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)
2.1.1.3;(5) sv. sv. hej (sv. 1);
2.1.2;(3) sv. hej (sv. 0);
2.1.2.1; (7) (sv. 3)
2.1.3; (8) (sv. 0)
2.1.1.4; (9) (sv. 1)


Venlig hilsen
Martin Lohse

 
 
Lars Balker Rasmusse~ (29-09-2001)
Kommentar
Fra : Lars Balker Rasmusse~


Dato : 29-09-01 15:30

lohse@techno.dk (martin lohse) writes:
> Hvordan kommer man ud over sotering af denne liste af tal !

Jeg kan ikke se et system i den måde du har listet det på, da 1.1.1.4
og 2.1.1.4 falder uden for sorteringen af tallene. Hvis det er en
fejl, kan følgende gøre det:

@rows = ("1.1.1.1;(2)sv. sv. hej (sv. 1);",
"1.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)",
"1.1.1.2;(4) sv. sv. hej (sv. 1);",
"1.1.1.3;(5) sv. sv. hej (sv. 1);",
"1.1.1.4; (9) (sv. 1)",
"1.1.1;(1) sv. hej (sv. 0);",
"1.1.2.1; (7) (sv. 3)",
"1.1.2;(3) sv. hej (sv. 0);",
"1.1.3; (8) (sv. 0)",
"1.1;(0) Hej; ",
"2.1.1.1;(2)sv. sv. hej (sv. 1);",
"2.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)",
"2.1.1.2;(4) sv. sv. hej (sv. 1);",
"2.1.1.3;(5) sv. sv. hej (sv. 1);",
"2.1.1.4; (9) (sv. 1)",
"2.1.1;(1) sv. hej (sv. 0);",
"2.1.2.1; (7) (sv. 3)",
"2.1.2;(3) sv. hej (sv. 0);",
"2.1.3; (8) (sv. 0)",
"2.1;(0) Hej; ",
);

@sorted =
map { $_->[0] }
sort { my $i = 1; my $res;
do { $res = $a->[$i] <=> $b->[$i]; ++$i; } until $res;
    $res }
map { /(^[^;]+)/; $t = $1; [ $_, split /\./, $t ] }
@rows;

print join "\n", @sorted;

1.1;(0) Hej;
1.1.1;(1) sv. hej (sv. 0);
1.1.1.1;(2)sv. sv. hej (sv. 1);
1.1.1.2;(4) sv. sv. hej (sv. 1);
1.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)
1.1.1.3;(5) sv. sv. hej (sv. 1);
1.1.1.4; (9) (sv. 1)
1.1.2;(3) sv. hej (sv. 0);
1.1.2.1; (7) (sv. 3)
1.1.3; (8) (sv. 0)
2.1;(0) Hej;
2.1.1;(1) sv. hej (sv. 0);
2.1.1.1;(2)sv. sv. hej (sv. 1);
2.1.1.2;(4) sv. sv. hej (sv. 1);
2.1.1.2.1;(6) sv. sv. sv. hej (sv. 4)
2.1.1.3;(5) sv. sv. hej (sv. 1);
2.1.1.4; (9) (sv. 1)
2.1.2;(3) sv. hej (sv. 0);
2.1.2.1; (7) (sv. 3)
2.1.3; (8) (sv. 0)
--
Lars Balker Rasmussen "Woo hoo!?"

Søg
Reklame
Statistik
Spørgsmål : 177547
Tips : 31968
Nyheder : 719565
Indlæg : 6408797
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste