首页 > 代码库 > C++学习之路: 循环实现二分查找

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

#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++学习之路: 循环实现二分查找