BinSearch
ssize_t BinSearch (const void *arrayToSearch, size_t numberOfElements, size_t elementSize, const void *itemPointer, CompareFunction comparisonFunction);
Purpose
Performs a binary search in an array of numberOfElements items of size elementSize.
Important: The binary search algorithm assumes that the array is already sorted in ascending order.
This function is like the C Library bsearch function except that this function returns the index where the item should be placed if it is not found.
Parameters
Input | ||
Name | Type | Description |
arrayToSearch | const void * | Pass the array of items that BinSearch will search. Important: The binary search algorithm assumes that the array is already sorted in ascending order. |
numberOfElements | size_t | Pass the number of items in the array. |
elementSize | size_t | Pass the item size (in bytes) for the items in the array. |
itemPointer | const void * | Pass a pointer to the item to search for in the array. |
comparisonFunction | CompareFunction | Pass a comparison function that BinSearch should use to compare items in the array to the item pointed to by itemPointer. The comparison function should have the following prototype: int CVICALLBACK CompareFunction (void *item1, void *item2); The comparison function should return a negative number if item1 is less than item2, it should return 0 if item1 is equal to item2, and it should return a positive number if item1 is greater than item2. When the comparison function is called, item1 is always the item pointer passed to BinSearch and item2 is always a pointer to an element in the array passed to BinSearch. This instrument driver provides several commonly useful comparison functions: ShortCompare IntCompare FloatCompare DoubleCompare CStringCompare CStringNoCaseCompare |
Return Value
Name | Type | Description |
result | ssize_t | Returns the index of the array element that matches the item (from 0 to numberOfElements – 1). If no match is found, it returns where the item should be placed if it were to be inserted in order, –i – 1 where i is the index (0 to numElements). |
Additional Information
Library: Programmer's Toolbox
Include file: toolbox\toolbox.h
LabWindows/CVI compatibility: LabWindows/CVI 4.0 and later