题目
解题思路
我一开始是想的写一个函数递归那种,但是在传参数时就怎么给新调用的函数传参的时候懵住了,不知道该怎么传递才能改变L能呢,我也没办法改变L让它成为一半数组呀,就这样卡住了,最后参看了别人,人家写了一个while循环,在while循环里改变min和max,然后在L的数组里操作,来解决二分查找。
代码
Position BinarySearch( List L, ElementType X ){
Position min = 0,max = L->Last,mid;
while(min<=max){
mid = (min+max)/2;
if(L->Data[mid]==X) return mid;
else if(L->Data[mid]<X) min = mid+1;
else max = mid-1;
}
return NotFound;
}