Posted on 2012-09-16 00:05
hoshelly 閱讀(633)
評論(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;
}