Problems? Is your data what you think it is? PerlMonks

### Re^2: Sort over remaining part of array

by monkini (Initiate)
 on Nov 12, 2013 at 11:15 UTC ( #1062174=note: print w/replies, xml ) Need Help??

in reply to Re: Sort over remaining part of array
in thread Sort over remaining part of array

That helps, thanks!

However, I still get an error "Use of uninitialized value in numeric comparison (<=>)" and it seems like the loop never ends...

```@AoA[0..\$#AoA] = sort { \$b->[0] <=> \$a->[0] } @AoA[0..\$#AoA];
my %seen = ();
my \$j = 0;
while (\$j < \$#AoA) {
my \$b = \$AoA[\$j][1];
my \$c = \$AoA[\$j][2];
if ( ! \$seen{\$b}++ ) { # \$b not seen before
DO STH WITH \$b AND \$c
\$seen{\$b}++;
} else { #seen \$b before
my (\$b, \$a) = RESAMPLE;
\$AoA[\$j][0] = \$a;
\$AoA[\$j][1] = '\$b';
@AoA[\$j..\$#AoA] = sort { \$b->[0] <=> \$a->[0] } @AoA[\$j..\$#AoA]
+;
}
}

...any ideas?

Replies are listed 'Best First'.
Re^3: Sort over remaining part of array
by jethro (Monsignor) on Nov 12, 2013 at 14:23 UTC

You re-sort the part of the array starting at \$a after resampling \$a. What if \$a is higher after resampling? It would have to be inserted somewhere before the part you want to re-sort. Instead of sorting the complete array just because one element changes you could just find out where the resampled element has to go and use splice to extract and insert it at the new place

Even better: Don't sort at all, resample until all \$b's are unique and then do just one sort.

Re^3: Sort over remaining part of array
by hdb (Monsignor) on Nov 12, 2013 at 11:34 UTC

Well, at a glance it looks like \$j will remain zero forever...

Re^3: Sort over remaining part of array
by Anonymous Monk on Nov 12, 2013 at 11:27 UTC

Create A New User
Node Status?
node history
Node Type: note [id://1062174]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2021-01-19 07:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
The STEM quote I most wish I'd made is:

Results (198 votes). Check out past polls.

Notices?