#include<bits/stdc++.h>
using namespace std;
int Binary_Search(int a[],int n,int k)//常规二分
{
int l=0,r=n-1,mid;
while(l<=r)
{
mid=(l+r)/2;
if(a[mid]==k)return mid;
else if(a[mid]>k) r=mid-1;
else l=mid+1;
}
return -1;
}
int Binary_Search2(int a[],int n,int k)//含相同值的情况下返回最左边下标
{
int l=0,r=n-1,mid;
while(l<r)
{
mid=(l+r)/2;
if(a[mid]==k)r=mid;
else if(a[mid]>k) r=mid-1;
else l=mid+1;
}
if(a[l]==k)return l;
else return -1;
}
int main()
{
int a[5]={0,1,1,2,5};
int i,j;
cout<<Binary_Search2(a,5,0)<<endl;
}
最后
以上就是曾经太阳最近收集整理的关于二分查找及优化的全部内容,更多相关二分查找及优化内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复