该算法是二分法查找int类型数据的示例代码,本人一手编写,亲测有效!
int* Bisection_method(int* data, int num, int value)
{
int frond, mid, end;
frond = 0;
end = num - 1;
mid = (frond + end) / 2;
int* ret = NULL;
if (value < *data && value > data[num-1])
{
goto err;
}
else
{
while(ret == NULL)
{
if (frond > end)
{
goto err;
}
else
{
if (value < *(data + mid))
{
end = mid - 1;
mid = (frond + end) / 2;
}
else if(value > *(data + mid))
{
frond = mid + 1;
mid = (frond + end) / 2;
}
else if (value = *(data + mid))
{
ret = data + mid;
}
}
}
}
err:
return ret;
}```