c++二分查找

发布时间:2019-07-29 21:54:47

设有n个已经从小到大排列的数,现在输入x,判断它是否在这n个数中,如果存在输出"YES",否则输出"NO"

输入

第一行,整数n

第二行,n个从小到大排列的数

第三行,要查找的数x

输出

YES或者NO

样例输入

10

1 2 3 4 5 6 7 8 9 10

15

样例输出

NO


推荐回答

C++的二分查找的函数为:(主函数自己写下)

int BinSearch(int r[],int n,int k) //数组,大小,要查的数

{

    int low=1,high=n;

    int mid;

    while(low<=high)

    {

        mid=(low+high)/2;

        if(k<r[mid])

            high=mid-1;

        else if(k>r[mid])

            low=mid+1;

        else

            return mid;

    }

    return 0;

}

以上问题属网友观点,不代表本站立场,仅供参考!