函数名: bsearch 
 功  能: 二分法搜索 
 用  法: #include <stdlib.h> 
         void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *)); 
 程序例: 
#include <stdlib.h> 
 #include <stdio.h> 
#define NELEMS(arr) (sizeof(arr) / sizeof(arr[0]))
int numarray[] = {123, 145, 512, 627, 800, 933};
int numeric (const int *p1, const int *p2) 
 { 
    return(*p1 - *p2); 
 } 
int lookup(int key) 
 { 
    int *itemptr; 
   /* The cast of (int(*)(const void *,const void*)) 
       is needed to avoid a type mismatch error at 
       compile time */ 
    itemptr = bsearch (&key, numarray, NELEMS(numarray), 
       sizeof(int), (int(*)(const void *,const void *))numeric); 
    return (itemptr != NULL); 
 } 
int main(void) 
 { 
    if (lookup(512)) 
       printf("512 is in the table.\n"); 
    else 
       printf("512 isn't in the table.\n"); 
   return 0; 
 }