二分法
前提是有序数组,数组中无重复元素
区间定义:左闭右闭,左闭右开,这两种常用
左闭右闭left=0,right=numsize-1(包含)
while left<=right
合法left<=right
防止越界:middle=left+(right-left)/2
if middle>target(已经不包含middle了)
right=middle-1;
else if middle<target(不包含middle)
left=middle+1;
else return middle;
若是左闭右开,left=0;right=numsize(不包含);
左边界不能等于有边界
while left
right=middle;
c++小白,请多指教

浙公网安备 33010602011771号