1.原理:
(1).在已经排好序的数 a[i,j] 组中,取中间的数 a[mid] 与29进行比较
(2)若 a[mid] < 29, 在 a[mid+1,j] 中查找;
若 a[mid] > 29, 在 a[i,mid-1] 中查找;
若 a[mid] = 29,mid+1 就是29 在数组中的位置;
2.代码:
void find_number(int array[], int len, int num)
{
int left = 0, right = len - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (array[mid] < num)
left = mid + 1;
else if (array[mid] > num)
right = mid - 1;
else if (array[mid] == num)
{
cout << mid << ':' << array[mid];
return;
}
}
cout << "找不到 " << num;
}