Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re^7: Dereferencing arrays

by BrowserUk (Pope)
on Mar 20, 2014 at 03:26 UTC ( #1079034=note: print w/ replies, xml ) Need Help??


in reply to Re^6: Dereferencing arrays
in thread <SOLVED>Dereferencing arrays

Just for fun, here's your code reworked to be a little more idiomatic:

#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @unsortedData = ( 5, 4, 7, 2, 1, 3, 6, 9, 8, 10 ); print "@unsortedData\n"; mergeSort( \@unsortedData ); print "@unsortedData\n"; sub mergeSort { my( $data ) = @_; return $data if @$data < 2; # if there is less then two items it' +s already sorted!! my $middle = @$data / 2; my $leftSide = [ @$data[ 0 .. $middle -1 ] ]; my $rightSide = [ @$data[ $middle .. $#{ $data } ] ]; mergeSort( $leftSide ); mergeSort( $rightSide ); merge( $leftSide, $rightSide, $data ); return $data; } sub merge { my ( $groupA, $groupB, $dataRef ) = @_; my( $i, $j, $k ) = (0)x3; @$dataRef[$k++] = $groupA->[$i] <= $groupB->[$j] ? $groupA->[$i++] : $groupB->[$ +j++] while $i < @$groupA && $j < @$groupB; @$dataRef[$k++] = $groupA->[$i++] while $i < @$groupA; @$dataRef[$k++] = $groupB->[$j++] while $j < @$groupB; }

It also demonstrates something to be aware of; namely, it doesn't use a variable: $sortedData!


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.


Comment on Re^7: Dereferencing arrays
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1079034]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2014-09-17 04:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (57 votes), past polls