C标准库 bsearch函数

bsearch()函数用于二分法搜索。

bsearch()函数 语法

void*bsearch(const void*key,const void*list,size_t*n,size_t m,int(*fc)(const void*,const*));

bsearch()函数的语法参数说明如表所示。

bsearch()函数 语法

bsearch()函数没有返回值。

bsearch()函数 示例

本示例使用bsearch函数实现二分法搜索元素456,其具体代码如下所示:

#include<stdlib.h>
#include<stdio.h>
#define NELEMS(arr)(sizeof(arr)/sizeof(arr[0]))
int a[]={123,456,789,654,312,741};/*定义数组*/
int num(const int*p1,const int*p2)/*自定义函数*/
{
     return(*p1-*p2);
}
int search(int key)/*自定义函数*/
{
     int*ptr;
     ptr=bsearch(&key,a,NELEMS(a),
     sizeof(int),(int(*)(const void*,const void*))num);/*采用二分法进行搜索*/
     return(ptr!=NULL);
}
int main()
{
     if(search(456))/*调用函数*/
         printf("456 is in the list. ");
     else
         printf("456 isn't in the list. ");
     return 0;
}

运行结果如图所示。

bsearch()函数 示例

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程