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

20 lines
547 B
Text

const func integer: binarySearchIterative (in array elemType: arr, in elemType: aKey) is func
result
var integer: result is 0;
local
var integer: low is 1;
var integer: high is 0;
var integer: middle is 0;
begin
high := length(arr);
while result = 0 and low <= high do
middle := low + (high - low) div 2;
if aKey < arr[middle] then
high := pred(middle);
elsif aKey > arr[middle] then
low := succ(middle);
else
result := middle;
end if;
end while;
end func;