summaryrefslogtreecommitdiff
path: root/perl_number_sort
diff options
context:
space:
mode:
Diffstat (limited to 'perl_number_sort')
-rwxr-xr-xperl_number_sort/number_sort.pl49
1 files changed, 49 insertions, 0 deletions
diff --git a/perl_number_sort/number_sort.pl b/perl_number_sort/number_sort.pl
new file mode 100755
index 0000000..1190f4f
--- /dev/null
+++ b/perl_number_sort/number_sort.pl
@@ -0,0 +1,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 );