Posted on 2012-09-16 00:05
hoshelly 閱讀(628)
評論(0) 編輯 收藏 引用 所屬分類:
DS && Algorithm
二分搜索算法的使用前提條件是表中的數(shù)已經(jīng)是有序的,如果還沒排好序,則不能用二分搜索算法。
int search(int a[],int v,int l,int r) //在數(shù)組a[]內(nèi)查找v,l為左下標,r為右下標
{
while (r>=l)
{
int m=(l+r)/2; //每次取數(shù)組的一半,此處要加1
if(v == a[m]) //如果查找到v,則返回下標m
return m;
if(v < a[m]) //如果v小于此時的數(shù),則右下標變成r=m-1,去掉數(shù)組中一半的數(shù),反之亦然
r=m-1;
else
l=m+1;
}
return -1;
}