Binary search for array that is sorted in ascending order:
function TSplitList.inc_search(const Val: TDataType; var i, j: longint): longint; var tmp_dat: TDataType; begin repeat result:= (i+j) shr 1; tmp_dat:= Val -ary_data[result]; if tmp_dat = 0 then EXIT else if tmp_dat > 0 then i:= result +1 else j:= result -1; until i > j; Result:= -1; end;{ inc_search }
Binary search for array that is sorted in descending order:
function TSplitList.dec_search(const Val: TDataType; var i, j: longint): longint; var
tmp_dat: TDataType;begin
repeat result:= (i+j) shr 1; tmp_dat:= Val -ary_data[result]; if tmp_dat = 0 then EXIT else if tmp_dat > 0 then i:= result -1 else j:= result +1; until i < j; result:= -1;end;{ dec_search }
--NNN nmanca 20:25, 13 August 2008 (UTC)