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

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

伪代码:

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

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

代码:

#include <iostream>
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]<key)
            low=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!"<<endl;
        cout << "index is:"<<index<< endl;}
    else
    cout<<"Not Found!"<<endl;

    return 0;
}

输出结果为:

Find it!
index is:4

猜你喜欢

转载自blog.csdn.net/zhenaoxi1077/article/details/80292161