in reply to Re: Fastest way to sort a list of integers into 0,1,2,3,-3,-2,-1
in thread Fastest way to sort a list of integers into 0,1,2,3,-3,-2,-1

And if non-core modules aren't permitted, then this adaptation of haukex3 can be used:

swl2 => sub { my @list = @input; @list = sort {$a<=>$b} @list; my $i = 0; $i++ while ($list[$i]<0); push @list, splice @list, 0, $i; Compare(\@list,\@output) or die "@list" if DO_CHECK; },
  • Comment on Re^2: Fastest way to sort a list of integers into 0,1,2,3,-3,-2,-1
  • Download Code

Replies are listed 'Best First'.
Re^3: Fastest way to sort a list of integers into 0,1,2,3,-3,-2,-1
by swl (Prior) on Feb 07, 2019 at 01:40 UTC

    Updated for lists that are all negative, following Discipulus4 in 1229492.

    swl_pp2 => sub { my @list = @input; @list = sort {$a<=>$b} @list; if ($list[0] < 0 && $list[-1] >= 0) { my $i = 0; $i++ while ($list[$i]<0); push @list, splice @list, 0, $i; } Compare(\@list,\@output) or die "@list" if DO_CHECK; },