最新消息:点击查看大S的省钱秘笈

C语言标准库函数 bsearch 详解

编程相关 Slyar 265浏览 0评论

文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。

C语言中 bsearch 包含在<stdlib.h>头文件中,此函数可以根据你给的条件实现二分查找,如果找到元素则返回指向该元素的指针,否则返回NULL;对于有多个元素匹配成功的情况,bsearch()未定义返回哪一个。使用 bsearch 函数也要自己定义比较子函数。

函数原型

解释一下参数

key 指向要查找的元素

base 指向进行查找的数组

num 数组中元素的个数

size 数组中每个元素的大小,一般用sizeof()表示

cmp 比较两个元素的函数,定义比较规则。需要注意的是,查找数组必须是经过预先排序的,而排序的规则要和比较子函数cmp的规则相同。

因为使用bsearch函数要求数组预先排好序,所以该函数通常和快速排序函数(qsort)一起使用,关于qsort函数,详见《C语言标准库函数 qsort 详解

关于bsearch()的具体应用请见《POJ 2503 Babelfish C语言版

转载请注明:Slyar Home » C语言标准库函数 bsearch 详解

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

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

网友最新评论 (4)

  1. 对于我们这些菜鸟来说,那个bsearch函数中最后的比较函数是怎么定义的啊?谢谢!
    xuezhongfenfei4年前 (2012-08-06)回复
  2. @Slyar 我觉得应该提前看一点。。对OOP和GP的思想不是可以一蹴而就的,应该慢慢积累。。。
    Felix0218年前 (2009-06-04)回复
  3. @Felix021, 恩,我知道binary_search...STL等以后玩C++的时候再写...嘎嘎
    Slyar8年前 (2009-06-04)回复
  4. Orz 这个函数和qsort一样晦涩 去看STL的lower_bound, upper_bound和binary_search吧。。。
    Felix0218年前 (2009-06-04)回复