Справочник по C/C++
bsearch()

#include <stdlib.h>
void *bsearch(const void *key, const void *buf,
		size_t num, size_t size,
		int (*compare)(const void *, const void *));

Описание

Выполняет двоичный поиск в отсортированном массиве

Функция bsearch() выполняет двоичный поиск в отсортированном массиве, адресуемом параметром buf, и возвращает указатель на первый член, который совпадает с ключом-значением, адресуемым параметром key. Количество элементов в массиве задается параметром num, а размер (в байтах) каждого элемента - параметром size.

Для сравнения каждого элемента массива с ключом-значением используется функция, адресуемая параметром compare. Форма записи функции compare должна иметь следующий вид.

int func_name(const void *argl, const void *arg2);

Она должна возвращать значения, описанные в следующей таблице.

Сравнение Возвращаемое значение
argl меньше arg2 Меньше нуля
argl равен arg2 Нуль
argl больше arg2 Больше нуля

Массив должен быть отсортирован в порядке возрастания, чтобы по самому младшему адресу содержался наименьший элемент.

Если массив не содержит ключа-значения, возвращается нулевой указатель.