After $try is modified, the next instruction is next which goes to the top of the while loop where $try is assigned a new value. At no point is the value modified by ++$try or --$try used anywhere so you could just do:
while ( $lo <= $hi ) { my $try = int( ( $lo + $hi ) / 2 ); if ( $array[ $try ] lt $word ) { $lo = $try + 1; # without increment there will be # a dead loop in the 4th case, # see the note at the bottem } elsif ( $array[ $try ] gt $word ) { $hi = $try - 1; } else { return $try } }
In reply to Re^5: Binary search algorithm.
by jwkrahn
in thread Binary search algorithm.
by kindlychung
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |