二分搜索以及查找区间的上下界
Posted sapphirebitter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分搜索以及查找区间的上下界相关的知识,希望对你有一定的参考价值。
二分查找:
int bisearch(int *a,int x,int y,int v){ int m; while(x<y){ m=x+(y-x)/2; if(a[m]==v) return m; else if(a[m]>v) y=m; else x=m+1; } return -1; }
二分查找求下界:
int lower_bound(int *a,int x,int y,int v){ int m; while(x<y){ m=x+(y-x)/2; if(a[m]>=v) return m; else x=m+1; } return -1; }
二分查找求上界:
int upper_bound(int *a,int x,int y,int v){ int m; while(x<y){ m=x+(y-x)/2; if(a[m]<=v) return m; else x=m+1; } return -1; }
以上是关于二分搜索以及查找区间的上下界的主要内容,如果未能解决你的问题,请参考以下文章