bsearch()函数实现

 

70void * bsearch (register const void *key,const void *base0,
71         size_tnmemb, registersize_t size,
72         registerint (*compar)(constvoid *, constvoid *))
73{
74    registerconst char*base = (constchar *) base0;
75    registerint lim, cmp;
76    registerconst void*p;
77  
78    for(lim = nmemb; lim != 0; lim >>= 1) {
79        p = base + (lim >> 1) * size;
80        cmp = (*compar)(key, p);
81        if(cmp == 0)
82            return(void *)p;
83        if(cmp > 0) {   /** key > p: move right */
84            base = (constchar *)p + size;
85            lim--;
86        }/** else move left */
87    }
88    return(NULL);
89}
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值