码迷,mamicode.com
首页 > 其他好文 > 详细

(二分查找)LowerBound

时间:2020-02-23 18:00:34      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:题解   二分   返回   数组   erb   防止   下标   begin   顺序   

在包含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

标签:题解   二分   返回   数组   erb   防止   下标   begin   顺序   

原文地址:https://www.cnblogs.com/lijiahui-123/p/12350524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!