二分搜索
代码如下:
int BinarySearch(int t, int a[], int n){
int l = 0;
int u = n-1;
int i = -1;
while(1){
if(l > u){
i = -1;
break;
}
int m = (l+u)/2;
if(a[m] < t){
l = m + 1;
}else if(a[m] == t){
i = m;
break;
}else{
u = m - 1;
}
}
return i;
}
如果在数组A中找到了和t相等的元素,那么就返回改元素的索引值,如果没找到则返回-1
P.S:
前几天看到一本讲算法的书,介绍二分搜索时,让读者花几分钟时间,来写一下代码,结果,我是写错了- -