Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

bsearch - двоичный поиск в массиве

Описание

         Выполняет двоичный поиск в упорядоченном массиве из
         num  элементов по указателю  base элемента, равного
         key.  Каждый элемент массива имеет размер width бай-
         тов. Алгоритм поиска реализует функция *cmp, опреде-
         ленная пользователем.  Она должна использовать  два
         аргумента, являющихся указателями на элементы, и во-
         звращать одно из значений:
            <0 - elem1 меньше elem2
             0 - elem1 совпадает с elem2
            >0 - elem1 больше elem2

Использование

         #include <stdlib.h>
         void *bsearch(const void *key, const void *base,
                                  size_t num, size_t width,
            int(*cmp)(const void *elem1,const void *elem2));
                                                  /* ANSI */

Возвращаемое значение

         Возвращается  указатель на соответствующий  элемент
         массива base или NULL, если таковой не найден.

Пример

         #include <stdio.h>
         #include <stdlib.h>
         #include <string.h>
         #define SIZE(arr)(sizeof(arr)/sizeof(arr[0]))
         int array[]={1254,3427,1111,3901,6677,0101};
         int intcmp(int *p1, int *p2)
         {
           return(*p1 - *p2);
         }
         main()
         {
           int * pointer;
           int Key = 3901;
           pointer = (int *) bsearch(& Key, array,
                     SIZE(array), sizeof(int), intcmp);
           if(pointer)
           {
             printf("[ %d] имеется в массиве\n", Key);
           }
           else
           {
             printf("[ %d] отсутствует в массиве\n", Key);
           }
         }

оглавление

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог