二分法

前提是有序数组,数组中无重复元素
区间定义:左闭右闭,左闭右开,这两种常用
左闭右闭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 lefttarget(不包含middle,右边界是开区间)
right=middle;

posted @ 2025-04-02 22:25  五冬夜  阅读(41)  评论(1)    收藏  举报