概述
#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;
}
最后
以上就是曾经太阳为你收集整理的二分查找及优化的全部内容,希望文章能够帮你解决二分查找及优化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复