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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
use strict;
#use warnings;
my @a;
my $z=0;
my $i=0;
my $l;
my $j;
my $m;
open IN, "eingabe.txt";
open OUT, ">ausgabe.txt";
while(<IN>)
{
@a[$z] = $_;
$z++;
}
$z=$z-1;
$m =int($z / 2);
quick(\@a,0,$z);
sub quick
{
my @a=$_[0];
my $l=$_[1];
my $r=$_[2];
my $t;
my $v=0;
if ($l<$r)
{
$v=@a[$r];
do
{
for($i=$l; @a[$i]<$v; $i++){}
for($j=$r-1; @a[$j]>$v; $j--){}
# $i=$l;
# while(@a[$i]<$v)
# {
# $i=$i+1;
# }
# $j=$r-1;
# while(@a[$j]>$v)
# {
# $j=$j-1;
# }
if ($i<$j)
{
$t=@a[$i];
@a[$i]=@a[$j];
@a[$i]=$t;
}
}while($i<$j);
$t=@a[$i];
@a[$i]=@a[$r];
@a[$r]=$t;
quick(\@a,$l,$i-1);
quick(\@a,$i+1,$r);
}
print @a;
}
close IN;
close OUT;
Guest perlnoob96Hat bis jetzt auch relativ einfach funktioniert. Allerdings stehe ich jetzt vor dem Problem, das sich das Programm immer wieder aufhängt, bzw die Zahlen nicht richtig Sortiert.
1 2 3 4 5 6
#!/usr/bin/perl use warnings; use strict; my @a = qw(6 3 1 4 2 5); @a = sort(@a); foreach my $i (@a) {print "$i\n";}
2013-12-12T16:27:21 hlubenowWenn's eine Hausaufgabe in Informatik zum Nachbilden von Algorithmen auf irgendeiner Bildungseinrichtung ist, schon ;)In Perl muß man sich eigentlich gar nicht mit so'nem Lowlevel-Kram beschäftigen, daher