我有一个阵列
Values array: 12 20 32 40 52
^ ^ ^ ^ ^
0 1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我必须在其上执行二进制搜索以找到数字所在范围的索引.例如:
我以下面的方式实现了二进制搜索,这对于案例1和3来说是正确的但是如果我们搜索案例2或52,55 32等则不正确.
#include <iostream>
using namespace std;
int findIndex(int values[], int number, unsigned first, unsigned last)
{
unsigned midPoint;
while(first<last)
{
unsigned midPoint = (first+last)/2;
if (number <= values[midPoint])
last = midPoint -1;
else if (number > values[midPoint])
first = midPoint + 1;
}
return midPoint;
}
int main() …Run Code Online (Sandbox Code Playgroud) 我经历了这个问题 -
为什么结果:1 ? (int *)0 : (void *)0
与以下结果不同:
1 ? (int *)0 : (void *)1
它有何不同?它应该是0或(int*)0.
如何查看结果?
我们可以在哪里使用这种表达方式?