使用条件
1、只适用于有序排列的序列
2、需要随机访问元素,只适用于顺序结构,不适用于链表
代码实现
//数组名,数组长度,需要查找的数,返回查找到的数组下标
int bin_search(int key[], int n, int k)
{
int low = 0, high = n - 1, mid;
while (low <= high)
{
mid = (low + high) / 2;
if (key[mid] == k)
{
return mid;
}
if (k > key[mid])
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
return -1;//没有查找到,返回-1
}