RosettaCodeData/Task/Binary-search/Pop11/binary-search-1.pop11
Ingy döt Net d066446780 langs a-z
2013-04-10 22:43:41 -07:00

21 lines
462 B
Text

define BinarySearch(A, value);
lvars low = 1, high = length(A), mid;
while low <= high do
(low + high) div 2 -> mid;
if A(mid) > value then
mid - 1 -> high;
elseif A(mid) < value then
mid + 1 -> low;
else
return(mid);
endif;
endwhile;
return("not_found");
enddefine;
/* Tests */
lvars A = {2 3 5 6 8};
BinarySearch(A, 4) =>
BinarySearch(A, 5) =>
BinarySearch(A, 8) =>