Статьи:: Функции С++ :: Описание функций C (Си) / C++ - bsearch
Описание функций C (Си) / C++ - bsearch
Описание функций C (Си) / C++ - bsearch
#include требуется только для объявления функции
char *bsearch(key,base,num,width,compare); char *key; ключ поиска char *base; указатель на поисковую базу данных unsigned num,width; число и размер элементов int (*compare)(); указатель на функцию сравнения
Описание.
Функция bsearch производит двоичный поиск в отсортированном массиве из num элементов, размер каждого элемента равен width байт. Base - указатель на начало массива, key - значение ключа поиска. Аргумент compare является указателем на процедуру, постав- ляемую пользователем, которая сравнивает два элемента массива и возвращает значение, определяющее их отношение. В течении поиска функция bsearch может вызывать процедуру compare один или нес- колько раз, передавая в каждом вызове указатели на два элемента массива. Процедура должна сравнивать элементы, а затем возвращать одно из следующих значений.
ЗНАЧЕНИЕ СМЫСЛ ЗНАЧЕНИЯ
меньше 0 element1 меньше, чем element2
0 element1 равен element2
больше 0 element1 больше, чем element2
Возвращаемое значение.
Функция bsearch возвращает указатель на первое вхождение ключа key в массив, на который указывает base. Если key не найден, функция возвращает NULL. См. также lfind, lsearch, gsort.
Пример:
/* Функция bsearch производит двоичный поиск в отсортиро- ванном массиве для элемента "key" и возвращает указатель на структуру, в которой находится ключ key, или возвращает NULL, ес- ли ключа нет. */
#include #include #include int compare();
/* должна быть объявлена как функция */
main (argc, argv) int argc; char **argv; {
char **result; char *key = "PATH";
/* следующий оператор находит аргумент, начинающийся с "PATH", в предположении, что аргументы лексикографически отсорти- рованы */
result = (char **)bsearch((char *)&key, (char *)argv, argc, sizeof(char *), compare); if (result) printf ("%s foundn", *result); else printf("PATH not found!n"); }
int compare (arg1, arg2) char **arg1, **arg2;
{
return(strncmp(*arg1, *arg2, strlen(*arg1))); }.
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий
анонсирован первый стабильный релиз
MySQL 5.1, пригодный для
промышленной эксплуатации и обеспечивающий увеличение производительности для
"тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные
новшества
появившиеся в MySQL 5.1:
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более
сложную задачу по сравнению с тестированием последовательной программы. Программист
должен знать о подводных камнях при тестировании параллельного кода, имеющихся
методологиях и инструментарии.
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее
реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности,
достоинства и недостатки.
Остальные статьи:
|