in reply to Round robin processing

Thanks everyone for your replies ! You've shown alternatives and upgrades to what I did, I realized my algorithm wasn't so bad after all :) I'll make some modifications to enhance it's clarity. Cheers !

Replies are listed 'Best First'.
Re^2: Round robin processing
by gurung (Sexton) on Sep 13, 2019 at 06:53 UTC
    Your code looks better. Here is one liner. Two ways, filling first bucket first and filling bucket one after another.
    $ perl -MData::Dumper -le '$bucket={}; @a=(1..12); $max=scalar @a/4; f +or my $x(1..4) { for my $y(0..$max-1){ push @{$bucket->{$x}},shift(@a +); } } print Dumper $bucket' $VAR1 = { '4' => [ 10, 11, 12 ], '1' => [ 1, 2, 3 ], '3' => [ 7, 8, 9 ], '2' => [ 4, 5, 6 ] }; $ perl -MData::Dumper -le '$how_many=4; $bucket={}; $count=1;for (1..1 +2) { push @{$bucket->{$count++}},$_; $count=1 if $_%$how_many == 0; } +; print Dumper $bucket' $VAR1 = { '2' => [ 2, 6, 10 ], '3' => [ 3, 7, 11 ], '4' => [ 4, 8, 12 ], '1' => [ 1, 5, 9 ] };
Re^2: Round robin processing
by Anonymous Monk on Sep 11, 2019 at 01:30 UTC
    Your algorithm was, indeed, pretty clean as it was. (The only thing I would seriously change is to use the "%" (modulo) operator when advancing the cursor.) Face it: at this glorious and long-awaited point in computing history, "saving milliseconds no longer matters." Today, "clarity rules."