有坑的二分查找算法[求助]
题目来源:http://blog.csdn.net/fox2790/article/details/8348427
22、下面的函数使用二分查找算法,对已按升序排序的数组返回所要查找数值的数据位置,请填写缺少的两句语句。
代码如下:
int* BinarySearch(int* arrayAddress, int arrayLength, int valueToSearch)
{
int head = 0;
int tail = arrayLength - 1;
int mid;
while (head < tail)
{
mid = (head + tail) / 2;
if (arrayAddress[mid] > valueToSearch)
{
_____(1)______
}
else
{
_____(2)______
}
}
if (tail < arrayLength && arrayAddress[tail] == valueToSearch)
{
return &arrayAddress[tail];
}
else
{
return NULL;
}
}
int main()
{
const int size = 8;
int arr[size] = { 6, 7, 8, 9, 10, 11, 12, 13 };
int* pi = BinarySearch(arr, size, 6);
if (pi != NULL)
{
cout << *pi << endl;
}
else
{
cout << "Not found!" << endl;
}
}
//就这么简单!!头每次加一,自己领悟吧!
tail=mid-1;
head+=1;