Thread Mehrdimensionale Arrays (22 answers)
Opened by der_thomas at 2013-09-27 22:49

der_thomas
 2013-10-06 21:21
#171019 #171019
User since
2013-09-07
158 Artikel
BenutzerIn
[default_avatar]
Ich habe mir jetzt mal eine kleine Sortierfunktion gebaut.
(Ja ich weiß, Bubble Sort ist nicht gerade ein Muster an Effektivität, aber vorerst reicht das)

Dazu meine Frage: Kann man solche mehrdimensionalen Arrays nur auf diese Weise sortieren, oder funktioniert das auch mit der eingebauten sort Funktion ? (Hab keine Ahnung wie ich die da vom Syntax her einbauen könnte)

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/perl

use v5.12;
use warnings;

my @matrix = (["A1", "A2", "A3", "A4", "vw", "A5"],
              ["B1", "B2", "B3", "B4", "skoda", "B6"],
              ["C1", "C2", "C3", "C4", "scoda", "C6"],
              ["D1", "D2", "D3", "D4", "toyota", "D6"],
              ["E1", "E2", "E3", "E4", "ford", "E6"],
              ["F1", "F2", "F3", "F4", "renault", "F5"]
              );        


sub bubble_sort{my $spalte = shift; my $getauscht = 0; my $zaehler = 0;
        for my $j (0..$#matrix){
                for my $i (0..$#matrix-1){
                        if ($matrix[$i]->[$spalte] gt $matrix[$i+1]->[$spalte]){
                                ($matrix[$i], $matrix[$i+1]) = ($matrix[$i+1], $matrix[$i]);
                                $getauscht = 1; 
                                $zaehler++;
                        }
                }
        if (!$getauscht){last;}
        }
        say "\n\nSuch-Durchgaenge $zaehler";
}

say "Vor dem Sortieren";
for my $i (0..5){
        say "$matrix[$i]->[0] > $matrix[$i]->[4]";
}

bubble_sort(4); # "4" weil die Matrix nach der Spalte 4 sortiert werden soll


say "\n\nNach dem Sortieren";
for (my $i=0; $i<=5; $i++){
        say "$matrix[$i]->[0] > $matrix[$i]->[4]";
}
print "\n\n";


Kleine Zusatzfrage: Wie man sieht habe ich bei "Vor dem Sortieren" und bei "Nach dem Sortieren" zwei verschiedene Varianten einer for Schleife eingesetzt. Spricht etwas gegen die simplere Version bei "Vor dem Sortieren", abgesehen davon dass Steps !=1 vermutlich nicht möglich sind und nur vorwärts gezählt werden kann ?

modedit Editiert von pq: Teilbaum "sortieren" erstellt
Last edited: 2013-10-06 21:39:48 +0200 (CEST)

View full thread Mehrdimensionale Arrays