RosettaCodeData/Task/Binary-search/Pascal/binary-search-1.pascal

26 lines
503 B
Text
Raw Permalink Normal View History

2013-04-10 22:43:41 -07:00
function binary_search(element: real; list: array of real): integer;
var
l, m, h: integer;
begin
2018-08-17 15:15:24 +01:00
l := Low(list);
h := High(list);
2013-04-10 22:43:41 -07:00
binary_search := -1;
while l <= h do
begin
m := (l + h) div 2;
if list[m] > element then
begin
h := m - 1;
end
else if list[m] < element then
begin
l := m + 1;
end
else
begin
binary_search := m;
break;
end;
end;
end;