summaryrefslogtreecommitdiff
path: root/perl_number_sort/number_sort.pl
blob: 1190f4ff0c56b278f9ea05f1ac815f5753a9ba03 (about) (plain)
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
#!/usr/bin/perl
use POSIX;

if ( scalar(@ARGV) < 1 ){
    print( "Usage: ".__FILE__." [amount of numbers]\n" );
    exit( 0 );
}

if ( int($ARGV[0]) > 999 ){
    print( "Only maximum of 999 numbers can be generated\n" );
    exit( 0 );
}

srand();

my @numbers = ();
my @numbers_sorted = ();

sub sort_fn{
    if ( $a < $b ){
        return -1;
    }
    elsif ( $a > $b ){
        return 1;
    }
    else
    {
        return 0;
    }
}

print( "Generating numbers\n" );
for ( my $ncount = 0; $ncount < int($ARGV[0]); $ncount++ ){
    push( @numbers, int(rand(999)) );
}
print( "Numbers generated\n" );

if ( defined($ncount) ){
    undef $ncount;
}

@numbers_sorted = sort( sort_fn @numbers );

print( "Unsorted:\n".join(", ", @numbers)."\n\n" );
print( "Sorted:\n".join(", ", @numbers_sorted)."\n" );

undef @numbers_sorted;
undef @numbers;
exit( 0 );