二分查找

#include <iostream>
using namespace std;
int binSearch(int a[],int b,int n)
{
    int l=0,r=n-1,mid=0;
    while(l<=r){
        mid=(l+r)>>1;
        if(a[mid]==b) return mid;
        else if(a[mid]>b){
            r=mid-1;
        }else{
            l=mid+1;
        }
    }
    return -1;
}
int main()
{
    int a[]={1,3,5,6,7,8,9,12};
    int len=sizeof(a)/sizeof(a[0]);
    int b=7;
    if(binSearch(a,b,len)==-1){
        cout<<"所查找的值不存在"<<endl;
    }else{
        cout<<"所查找的值在数组内的索引为:"<<binSearch(a,b,len)<<endl;
    }
    return 0;
}
View Code

 

posted @ 2018-12-29 23:00  wydxry  阅读(202)  评论(0)    收藏  举报
Live2D