BSEARCH - binary search through table.
(ANSI Standard)
Usage:
#include <stdlib.h>
ptr = bsearch( key, table, tabsize, keysize, compar);
Where:
- const void *key;
- points to the key you are searching for.
- const void *table;
- points to the beginning of a table that contains
information to search. This table must be sorted in
increasing order (according to the "compar"
function -- see below).
- size_t tabsize;
- is the number of elements in the table.
- size_t keysize;
- is the size of the key you want to find.
- int (*compar)(const void *,const void *);
- is a pointer to a user-defined function that determines
whether or not two keys are equal. This function should
take two (void *) arguments; one will point to the key
you want to find and the other will point to a key in the
table. The function should return a negative integer if
the first argument is less than the second; it should
return a positive integer if the first argument is
greater than the second; and it should return zero if the
two arguments are equal.
- void *ptr;
- points to a table element that matches "key".
If no match is found, a NULL pointer is returned.
Description:
"bsearch" performs a binary search through the
elements of a table. It uses your "compar" function to
compare elements in the table.
Note that the "compar" you use does not have to do a
byte-by-byte comparison between the key and the table elements.
For example, the table may be an array of C structures and
"compar" may only look at a particular field when
comparing two structures. In this case, the original search key
might just be a dummy, with only the significant field filled in.
Copyright © 1996, Thinkage Ltd.