问题
在一个排好序的数组T[1…n]中查找x,如果x在T中,输出x在T的下标j;如果x不在T中,输出j=0
解析
二分法查找元素x的下标
用le和ri二分数组元素的下标,mid=(le+ri)/2,初始le=1,ri=n。当a[mid]<x时,le=mid+1,否则,ri=mid-1,最终le一定会大于ri,此时输出le的值就是若元素x存在时的下标。最后判断一下a[le]是否等于x即可
设计
核心伪代码
int le, ri, mid;
le = 1, ri = n;
while (le <= ri