二分法代码

今天又看以前写的代码,发现一段二分法代码,有些臃肿,改了一下,记录在此,以后可看。

代码主要用查找数组中对应值的下标,如果找内容的可以用库函数bsearch();

 

int searchIndex(const void *key, const void *base, size_t num, size_t size)
{
    size_t start = 0, end = num - 1;
    int result;
    
    while(start <= end)
    {
        size_t mid = start + (end -start)>>1;

        result = memcmp(key, base+mid*size, size);
        if(result > 0)
            start = mid + 1;
        else if(result < 0)
            end = mid - 1;
        else
            return mid;
    }
    return -1;
}

 

 

posted on 2012-07-05 22:46  kevin_kang  阅读(350)  评论(0)    收藏  举报

导航