二分法代码
今天又看以前写的代码,发现一段二分法代码,有些臃肿,改了一下,记录在此,以后可看。
代码主要用查找数组中对应值的下标,如果找内容的可以用库函数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) 收藏 举报
浙公网安备 33010602011771号