您的位置:首页 > 其它

二分查找法与拉格朗日差集

2016-04-21 21:26 288 查看
int * find2(int *a, int left, int right, int findnum)
{
register int center;

while (left <= right)
{
//拉格朗日差集
center = left + (right - left) * 1.0 * (findnum - *(a + left)) / (*(a + right) - *(a + left));

if (center > right || center < left)
{
center = (left + right) / 2;
}

if (*(a + center) == findnum)
{
return a + center;
}
else if (*(a + center) < findnum)
{
left = center + 1;
}
else
{
right = center - 1;
}
}
return NULL;
}


要避免拉个朗日超出范围的问题。    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: