TMtx.BinarySearch Method

Overload List

#SignatureDescription
1Int32 BinarySearch(Double x)Finds a match for X in sorted object values using binary search.
2Boolean BinarySearch(Double x, ref Int32 XIndex)Finds exact or closest index match for X in sorted object values using binary search.

Overload 1: Int32 BinarySearch(Double x)

Finds a match for X in sorted object values using binary search.

#NameTypeDescription
1xDoublescalar

Returns: Int32 - the index of first matched element. If no matching elements are found, the result is -1.

Remarks:

The data in the vector must be sorted in ascending order for this function to work correctly.

Overload 2: Boolean BinarySearch(Double x, ref Int32 XIndex)

Finds exact or closest index match for X in sorted object values using binary search.

#NameTypeDescription
1xDoublescalar
2XIndexInt32 (ref)X start index

Returns: Boolean - True and exact index in XIndex, if found and False and the index of the next bigger or smaller value in XIndex, if not found.

Remarks:

The data in the vector must be sorted in ascending order for this function to work correctly. The closest match is the index of first bigger or smaller value in the array.

To ensure bigger value write:

Data := [0,2,3];
Data.BinarySearch(Value, XIndex);
if Data[XIndex] > Value then Dec(XIndex);

To ensure smaller value write:

Data := [0,2,3];
Data.BinarySearch(1, XIndex);
if Data[XIndex] < Value then Inc(XIndex);