内容发布更新时间 : 2025/1/4 14:29:24星期一 下面是文章的全部内容请认真阅读。
C++ 中库函数bsearch的简单研究(含示例)
/*bsearch函数声明如下:
void *bsearch(const void *key, const void *base, size_t *nelem, size_t width, int(*fcmp)(const void *, const *));
参数的意思和qsort的差不多,区别在于: 1. qsort用来排序,bsearch用二分法来查找元素 2. bsearch中的base必须是升序排列的数组!!!
3. 如果数组里有重复的答案,则bsearch会返回其中一个的地址 (具体返回哪一个不确定)
4. bsearch有五个自变量,第一个是要找的东西,剩下的跟qsort一模一样 5. bsearch如果没找到所求则回传NULL ,否则回传该元素被找到的地址(void *) */
#include
int compare(const void*a,const void *b) {
return *((int*)a)-*((int*)b); }
int main()
{
int a[100]; int i;
for(i=0;i<100;i++) a[i]=i+1; i=50; int *result;
result=(int*)bsearch((void*)&i,(void*)a,100,sizeof(a[0]),compare); cout<
C语言标准库函数 bsearch 详解
C/C++ 2009-08-11 11:52:57 阅读247 评论0 字号:大中小 来源:http://www.slyar.com/blog/stdlib-bsearch.html C语言中 bsearch 包含在
函数原型
void *bsearch(const void *key, const void *base, size_t num, size_t size, int (*cmp)(const void *, const void *));
解释一下参数
key 指向要查找的元素
base 指向进行查找的数组 num 数组中元素的个数
size 数组中每个元素的大小,一般用sizeof()表示
cmp 比较两个元素的函数,定义比较规则。需要注意的是,查找数组必须是经过预先排序的,而排序的规则要和比较子函数cmp的规则相同。
因为使用bsearch函数要求数组预先排好序,所以该函数通常和快速排序函数(qsort)一起使用,关于qsort函数,详见《C语言标准库函数 qsort 详解》 关于bsearch()的具体应用请见《POJ 2503 Babelfish C语言版》
C语言标准库函数 qsort 详解 2008年12月31日 11:15 Slyar 发表评论 阅读评论
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
qsort包含在
函数原型:
void qsort ( void * base, size_t num, size_t size, int ( * comparator ) ( const void *, const void * ) );
用法以及参数说明:
Sorts the num elements of the array pointed by base, each element size bytes long,