二分查找是数据结构的基础算法,但是非常重要。
简单的说就是将已排序的数据依次对分取中间元素,然后与待查找元素进行对比,根据结果每次可以舍弃一半规模的数据。
代码:
int binarySearch(int a[], int n, int key)
{
int left = 0, right = n - 1, mid;
while (left <= right)
{
mid = (left + right) / 2;
if (a[mid]>key)
right = mid - 1;
else
if (a[mid]<key)
left = mid + 1;
else
return mid;
}
return -1;
}