16 lines
504 B
Plaintext
16 lines
504 B
Plaintext
BinarySearch := proc( A, value, low, high )
|
|
description "recursive binary search";
|
|
if high < low then
|
|
FAIL
|
|
else
|
|
local mid := iquo( high + low, 2 );
|
|
if A[ mid ] > value then
|
|
thisproc( A, value, low, mid - 1 )
|
|
elif A[ mid ] < value then
|
|
thisproc( A, value, mid + 1, high )
|
|
else
|
|
mid
|
|
end if
|
|
end if
|
|
end proc:
|