Binary Search
Procedure BinarySearch (VAR List: VECTOR; Low, High, LookFor: INTEGER; VAR Found: BOOLEAN; VAR Loc: INTEGER);
IF Low > High THEN Found := FALSE
ELSE { We may yet succeed }
BEGIN Mid := ( Low + High ) div 2;
IF LookFor = List[Mid] THEN
BEGIN Found := True; Loc := Mid END
BinarySearch ( List, Low, Mid-1, LookFor, Found, Loc)
ELSE { Look in Bottom Half }
BinarySearch ( List, Mid+1, High, LookFor, Found, Loc)