int Binafindval(const int* br, int n, int val)
{
assert(br != nullptr);
int right = n - 1, left = 0;
int pos = -1;
while (left<=right)
{
int mid = (right - left) / 2 + left;
if (br[mid] < val)
{
left = mid + 1;
}
else if (br[mid] > val)
{
right = mid - 1;
}
else
{
if (mid > left && br[mid - 1] == val)
{
pos = mid;
break;
}
right = mid - 1;
}
}
return pos;
}
int main()
{
int ar[] = { 15,15,45,51,32,65,28 };
int n = sizeof(ar) / sizeof(ar[0]);
int val;
scanf_s("%d", &val);
int pos=Binafindval(ar, n, val);
printf("%d", pos);
return 0;
}
中值法查找数
最新推荐文章于 2022-06-22 22:06:09 发布