二分搜索的3种正确写法

(1)闭区间写法

while(left<=right){
      mid=(left+right)/2;
      if(array[mid]==value) return mid;
      if(array[mid]>value) right=mid-1;
      else left=mid+1;
}

(2)左闭右开区间写法

while(leftvalue) right=mid;
      else left=mid+1;
}

(3)左开右闭区间写法

while(leftvalue) right=mid-1;
      else left=mid;
}


你可能感兴趣的:(C/C++,算法,ACM)