RosettaCodeData/Task/Binary-search/Perl-6/binary-search-2.pl6
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

11 lines
301 B
Raku

sub binary_search (&p, Int $lo is copy, Int $hi is copy --> Int) {
until $lo > $hi {
my Int $mid = ($lo + $hi) div 2;
given p $mid {
when -1 { $hi = $mid - 1; }
when 1 { $lo = $mid + 1; }
default { return $mid; }
}
}
fail;
}