(二分查找)LowerBound

Posted lijiahui-123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(二分查找)LowerBound相关的知识,希望对你有一定的参考价值。

在包含size个元素的,从小到大顺序的int数组a里查找比给定整数p小的,下标最大的元素,找不到返回-1

题解:

int LowerBound(int a[],int size,int p)

{

  int begin=0;

  int end=size-1;

  int pos=-1;

  while(begin>=end){

    int mid;    

    mid=(begin+end)/2;

    if(p>a[mid]){

      p=a[mid];

      begin=mid+1;

    }else{

      end=mid-1;

    }

  }

  return pos;

}

将int mid=(begin+end)/2;改成int mid=begin(end-begin)/2;

防止过大溢出

以上是关于(二分查找)LowerBound的主要内容,如果未能解决你的问题,请参考以下文章

二分查找

XDOJ_1023_二分查找

不光是查找值! "二分搜索"

python算法:二分查找

Task 04:数组二分查找

异序二分查找 二分查找方程根 二分查找重复元素最后一个