发布网友
共1个回答
热心网友
折半查找是这样的,从中间开始,如果查找值(key)比中间值大,说明key应该在中间——最后的部分~如果key比中间值小,说明key应该在最前面——中间的位置~很好理解~
所以if(m<a[mid]);high=mid-1;//key小于中间值,应该从开始——中间继续比较~这时low就是开始,不用变~
else
if(m>=a[mid]);
low=mid+1;//说明key大于当前的中间值,应该从中间——最后找~high不变~