准确实现二分查找方法
准确写出二分查找法很重要,因为其中有许多地方容易出错。
主要有下面几点:
正确的程序如下:
#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=5; int finded=isFinded(a, num, value); cout<<finded<<endl; return 0; }
原文地址:http://blog.csdn.net/puqutogether/article/details/41843937