int *search(const int *p_arr, int size, int val)
{
const int *start = p_arr;
const int *end = p_arr + size - 1;
const int *mid = NULL;
while(start < end){
//首先计算中间点存储区的地址 并记录到mid指针里
mid = start + (end - start + 1) / 2;
if(val == *mid){
//中间点位置的存储区内容就是要查找的数字
return (int *)mid;
}
else if(val > *mid){
//要查找的数字比中间点位置的数字大,这个时候应该排除前半部分数字
start = mid + 1;
}
else{
//要查找的数字比中间点位置的数字小,这个时候应该排除后半部分数字
end = mid - 1;
}
}
return NULL;
}
二分查找算法
最新推荐文章于 2024-10-21 22:00:00 发布