首页 > 代码库 > 准确实现二分查找方法
准确实现二分查找方法
准确实现二分查找方法
准确写出二分查找法很重要,因为其中有许多地方容易出错。
主要有下面几点:
- right初始值为num-1;
- 每次更新right=middle-1;
- 每次更新middle为left+((right-left)>>1); 注意使用移位,以及移位运算符加括号!
正确的程序如下:
#include<iostream> using namespace std; int isFinded(int *a, int num, int value) { int left=0, right=num-1; int middle; while(left<=right) { middle=left+((right-left)>>1); if(a[middle] < value) left=middle+1; else if(a[middle] > value) right=middle-1; else return middle; //返回找到的位置 } return -1; //没找到 } int main() { int a[5]={1, 3, 5, 7, 9}; int num=5; int value=http://www.mamicode.com/5; >准确实现二分查找方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。