二分法查找——C++代码

参考代码:
https://www.cnblogs.com/wanglog/p/6650695.html

伪代码:

输入:排序好的数组array,需要查找的字key
输出:对应的下表
----------
定义low,high,mid

while(lowmid=(low+high)/2;
if (array[mid]==key)
    return mid;
else if (array[mid]mid+1;
else 
    high=mid-1;
}

代码:

#include 
using namespace std;
int BinarySearch(int myarray[], int n, int key)
{
    int low=0,high=n-1;
    int mid=0;
    while(low<=high)
    {
        mid=(low+high)/2;
        if (myarray[mid]==key)
            return mid;
        if (myarray[mid]1;

        else
            high=mid-1;

    }
    return -1;
}


int main()
{
    int myarray[]={1,3,4,6,8,7};
    int index=BinarySearch(myarray,6,8);
    if(index!=-1)
        {cout<<"Find it!"<cout << "index is:"<else
    cout<<"Not Found!"<return 0;
}

输出结果为:

Find it!
index is:4

你可能感兴趣的:(C++,《剑指offer》)