2018-11-08

2018-11-08  本文已影响0人  BlackPanth_f591

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;
}
上一篇 下一篇

猜你喜欢

热点阅读