常用算法之二分查找

二分查找简单又常用,但只能针对已经排序好的数据。

int binary_search(vector<int> &arr,int key)
{
    int left = 0;
    int right = arr.size() - 1;
    while(left < right)
    {
        int mid = (left + right) / 2;
        if(key == arr.at(mid))
        {
            return mid;
        }
        if(key > arr.at(mid))
        {
            left = mid + 1;
        }
        else
        {
            right = mid - 1;
        }
    }
    return -1;
}
posted @ 2016-10-10 18:03  随风的博客  阅读(102)  评论(0编辑  收藏  举报