首页 > 代码库 > 二分的姿势=_=
二分的姿势=_=
二分查找:
1:大于等于xx的第一个数
int bin_s(int xx) { int l=1,r=10; int ans=-1; while(l<=r){ int m=(l+r)>>1; if(a[m]>=xx) ans=m,r=m-1; //!!! else l=m+1; } return ans; } e.g: int a[]={0,1,2,5,5,5,5,7,8,9,10}; in: 5 out: 32:大于xx的第一个数
int bin_s(int xx) { int l=1,r=10; int ans=-1; while(l<=r){ int m=(l+r)>>1; if(a[m]>xx) ans=m,r=m-1; //!!! else l=m+1; } return ans; } e.g: int a[]={0,1,2,5,5,5,5,7,8,9,10}; <pre name="code" class="cpp">in: 5 out: 73:小于等于xx的第一个数(接近xx)
int bin_s(int xx) { int l=1,r=10; int ans=-1; while(l<=r){ int m=(l+r)>>1; if(a[m]>xx) r=m-1; else ans=m,l=m+1; } return ans; } e.g: int a[]={0,1,2,5,5,5,5,7,8,9,10}; <pre name="code" class="cpp">in: 5 out: 64:小于xx的第一个数(接近xx)
int bin_s(int xx) { int l=1,r=10; int ans=-1; while(l<=r){ int m=(l+r)>>1; if(a[m]>=xx) r=m-1; else ans=m,l=m+1; } return ans; } e.g: int a[]={0,1,2,5,5,5,5,7,8,9,10}; <pre name="code" class="cpp">in: 5 out: 2
二分的姿势=_=
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。