Leser: 18
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}; }
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
Quote1. Wie kommen die "Abweichler" bei 8 und 16 Elementen zustande?
Quote2. Warum wird die sub so oft durchlaufen? Ist das ein Bubblesort?
Quote3. Geht das auch irgendwie schneller/eleganter?