Thread Fragen zu sort (1 answers)
Opened by bianca at 2009-11-24 15:34

bianca
 2009-11-24 15:34
#128551 #128551
User since
2009-09-13
7016 Artikel
BenutzerIn

user image
Hi!
Mir ist da was bei sort aufgefallen.

Script:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my %liste;
my $count = 0;
for (my $elemente = 2; $elemente < 2000; $elemente = $elemente * 2) {
        %liste = ();
        for (my $anz = 1; $anz <= $elemente; $anz ++) {
                $liste{$anz} = 'test';
        }
        print "\n\n$elemente Elemente:\n";
        $count = 0;
        foreach my $anz (sort {&sort_tab (\%liste)} keys %liste) {
        }
}
sub sort_tab {
        my %liste = %{$_[0]};
        $count ++;
        print "\rSortiere $count mal";
        $liste{$a} cmp $liste{$b};
}


Ausgabe:
Code: (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
2 Elemente:
Sortiere 1 mal

4 Elemente:
Sortiere 4 mal

8 Elemente:
Sortiere 12 mal

16 Elemente:
Sortiere 32 mal

32 Elemente:
Sortiere 31 mal

64 Elemente:
Sortiere 63 mal

128 Elemente:
Sortiere 127 mal

256 Elemente:
Sortiere 255 mal

512 Elemente:
Sortiere 511 mal

1024 Elemente:
Sortiere 1023 mal


1. Wie kommen die "Abweichler" bei 8 und 16 Elementen zustande?
2. Warum wird die sub so oft durchlaufen? Ist das ein Bubblesort?
3. Geht das auch irgendwie schneller/eleganter?

Danke

EDIT: %liste = (); eingefügt, ändert aber nichts.
Last edited: 2009-11-24 15:42:20 +0100 (CET)
10 print "Hallo"
20 goto 10

View full thread Fragen zu sort