美文网首页
补充知识:bsearch的使用

补充知识:bsearch的使用

作者: 编程半岛 | 来源:发表于2018-06-30 18:16 被阅读6次

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一模一样
  4. bsearch如果没找到所求则回传NULL ,否则回传该元素被找到的地址(void *)
#include<iostream>
#include<cstdlib>
using namespace std;


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<<i<<' '<<*result<<endl;
    system("pause");
    return 0;
}

相关文章

  • 补充知识:bsearch的使用

    bsearch函数声明如下: 参数的意思和qsort的差不多,区别在于: qsort用来排序,bsearch用二分...

  • 补充知识:qsort的使用

    C/C++中有一个快速排序的标准库函数 qsort ,在stdlib.h和cstdlib 中声明,其原型为: 使用...

  • 6.828 操作系统 lab1: 阅读boot.S

    补充知识 补充1. AT&T汇编 由于内核代码采用的gcc编译器使用AT&T的汇编格式,首先补充下关于AT&T汇编...

  • 如何实现盒子以动画的形式自动弹出?

    补充知识: ①display:none;与translation过渡效果冲突,即使用display:none|bl...

  • OJ刷题笔记

    结束读取 while (!cin.eof()) 叶结构 stdlib.h qsort bsearch algori...

  • 知识补充

    在不允许修改参数变量的值时可以加上const修饰符 图片 在ios中会自动识别图片@几x来按比例显示假如图片是xx...

  • 知识补充

    1. 傅立叶变换: (1) 傅立叶级数:法国数学家傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数...

  • 知识补充

    必备词 breakfast voucher[ˈvaʊtʃɚ] 早餐卷 lunch voucher dinner v...

  • 补充知识

    js的特点 解释性语言 (不需要编译成文件 , 跨平台) 单线程 (同一时间只能做一件事) ...

  • 用ANKI“完形填空”模板,学习碎片信息

    上一帖介绍的是使用evernote插件,保存碎片信息,作为知识补充。 既然是补充,就要彻底。笔记光存起来远远不够,...

网友评论

      本文标题:补充知识:bsearch的使用

      本文链接:https://www.haomeiwen.com/subject/wefxuftx.html