首页 > 代码库 > 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++学习之路: 循环实现二分查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。