美文网首页
2018-11-08

2018-11-08

作者: BlackPanth_f591 | 来源:发表于2018-11-08 11:49 被阅读0次

P38_2-3

#include <iostream>
using namespace std;

void binary_search(int data[],int n,int x,int &lo)
{
    int bigger=-1,smaller=-1;
    if(n <=0|| x < data[0]|| x > data[n-1])
    {
        lo=-1;
    }
    int left =0, right = n-1;
    int middle;
    while(left <= right)
    {
        middle =(left + right)/2;
        if(x == data[middle])
        {
            lo=middle;
            return;
        }
        else if(x > data[middle])
        {
            smaller=middle;
            left = middle +1;
        }
        else
        {
            bigger=middle;
            right = middle -1;
        }
    }
    lo=-1;
    cout<<smaller<<" "<<bigger<<endl;
}
int main()
{
    int a[8]={1,2,3,5,6,7,8,10};
    int lo=0;
    int x;
    cin>>x;
    binary_search(a,8,x,lo);
    cout<<"位置"<<lo<<endl;
    return 0;
}

相关文章

网友评论

      本文标题:2018-11-08

      本文链接:https://www.haomeiwen.com/subject/pfzixqtx.html