Overload List
| # | Signature | Description |
|---|---|---|
| 1 | function BinarySearch(const X: Integer): Integer; | Finds a match for X in object values using binary search. |
| 2 | function BinarySearch(const X: Integer; var XIndex: Integer): Boolean; | Finds exact or closest index match for X in object values using binary search. |
Overload 1: function BinarySearch(const X: Integer): Integer;
Finds a match for X in object values using binary search.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | Integer |
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.
Examples
Data := [0,2,3];
Data.BinarySearch(Value, XIndex);
if Data[XIndex] > Value then Dec(XIndex);
Overload 2: function BinarySearch(const X: Integer; var XIndex: Integer): Boolean;
Finds exact or closest index match for X in object values using binary search.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | X | Integer | |
| 2 | XIndex | Integer | X start index |
Returns: Boolean - True, if found 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);
Examples
Data := [0,2,3];
Data.BinarySearch(1, XIndex);
if Data[XIndex] < Value then Inc(XIndex);