Posted on 2012-09-16 00:05
hoshelly 阅读(622)
评论(0) 编辑 收藏 引用 所属分类:
DS && Algorithm
二分搜索算法的使用前提条件是表中的数已经是有序的,如果还没排好序,则不能用二分搜索算法。
int search(int a[],int v,int l,int r) //在数组a[]内查找v,l为左下标,r为右下标
{
while (r>=l)
{
int m=(l+r)/2; //每次取数组的一半,此处要加1
if(v == a[m]) //如果查找到v,则返回下标m
return m;
if(v < a[m]) //如果v小于此时的数,则右下标变成r=m-1,去掉数组中一半的数,反之亦然
r=m-1;
else
l=m+1;
}
return -1;
}