iterative_binary_search

二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int iterative_binary_search(int a[], int val, int low, int high)
{
while(low <= high)
{
int mid = low + (high-low)/2; //如果(low+high),在极端情况下可能溢出
if(a[mid] == val)
return mid;
else if(a[mid] < val)
low = mid+1;
else
high = mid-1;
}
return -1;
//return low;如果未查找到,返回插入的位置
}