码迷,mamicode.com
首页 > 编程语言 > 详细

C++学习之路: 循环实现二分查找

时间:2014-09-18 00:40:02      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   使用   ar   div   sp   

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int BinSearch(vector<int> ivec, int key)   //循环实现的二分查找要比递归实现效率要高很多,推荐使用这种方法
{
    int low = 0, high = ivec.size() -1, mid;  //注意high的边界值,ivec.size()指向的是最后一个元素的下一个元素(即指向越界的内存);
    if(ivec[low] == key)
        return low;
    if(ivec[high] == key)
        return high;
    mid = low + (high - low) / 2;

    if(ivec[mid] == key)
        return mid;
    if(ivec[mid] > key)
        high = mid - 1;
    if(ivec[mid] < key)
        low = mid + 1;

    if(low > high)
        return -1 //没有找到则返回 -1;
}


int main(int argc, const char *argv[])
{
    
    return 0;
}

 

C++学习之路: 循环实现二分查找

标签:style   blog   color   io   os   使用   ar   div   sp   

原文地址:http://www.cnblogs.com/DLzhang/p/3978353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!