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()函数 示例

赞(0)
未经允许不得转载:极客笔记 » C标准库 bsearch函数
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址