Функция библиотеки C -bsearch()
Стандартная библиотека C - <stdlib.h>
bsearch — это функция в стандартной библиотеке C, используемая для выполнения двоичного поиска в отсортированном массиве. Её определение находится в заголовочном файле stdlib.h.
Функции библиотеки Cvoid *bsearch(const void *key, const void *base, size_t nitems, size_t size, int (*compar)(const void *, const void *))ПараnitemsВыполняет двоичный поиск в массиве объектов,baseУказывает на массив, в котором выполняется поиск,keyУказывает на элемент, который нужно найти,sizeЗадаёт размер каждого элемента в массиве.
Содержимое массива должно быть отсортировано в порядке возрастания в соответствии сcomparсоответствующей функцией сравнения.
Объявление
Ниже приведено объявление функции bsearch().
void *bsearch(const void *key, const void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
Параметр
key: Указатель на искомый элемент.base: Указатель на начальную позицию массива.nmemb: Количество элементов в массиве.size: Размер каждого элемента (в байтах).compar: Указатель на функцию сравнения, которая используется для сравнения двух элементов.
Возвращаемое значение
- Если совпадающий элемент найден,
bsearchвозвращает указатель на этот элемент. - Если совпадающий элемент не найден,
bsearchreturnNULL。
Функция сравнения
Функция сравнения должна соответствовать следующей сигнатуре:
int compar(const void *a, const void *b);
Функция возвращает:
- Отрицательное значение, если
aзнак меньшеb。 - Ноль, если
aequalsb。 - Положительное значение, если
aзнак большеb。
Пример
В следующем примере демонстрируется использование функции bsearch().
Пример
Давайте скомпилируем и запустим приведённую выше программу, которая выдаст следующий результат:
Found item = 32Другие расширения