(Day7)演算法復健運動for藍橋杯-二分

wlqtc發表於2024-06-25

(Day7)演算法復健運動for藍橋杯-二分

二分比較簡單,這裡主要摘一些常用的寫法:

1.找到目標數

int l,r,mid;
while(l<=r)
{
  	if(a[mid]==x)return mid;
  	else if(a[mid]<x)l=mid+1;
  	else r=mid-1;
}

2.找範圍內的

找小於等於y的第一個數

000000011111

while(l<=r)
{
    mid=(l+r)/2;
    if(a[mid]<=y)//跟用法一樣
        l=mid+1;
    else r=mid-1;
}//r

找大於等於x的第一個數

000000111111

while(l<=r)
{
    mid=(l+r)/2;
    if(a[mid]>=x)
        r=mid-1;
    else l=mid+1;
}//l

如果條件沒有等於就把等號去掉

相關文章