二分查找

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<assert.h>
using namespace std;
 
int BinarySearch(int*a, int size, int x)
{
assert(a);
int left = 0;
int right = size - 1;//闭区间[]    
//int right=size;//开区间[)
while (left <= right)
//while(left<right)
{
int mid = left + ((right - left) >> 1);
if (a[mid] < x)
{
left = mid + 1;
}
else if (a[mid]>x)
{
right = mid - 1;
//right=mid;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
 
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int ret = BinarySearch(a, 10, 5);
cout << ret << endl;
system("pause");
return 0;
}


以上是关于二分查找的主要内容,如果未能解决你的问题,请参考以下文章

异序二分查找 二分查找方程根 二分查找重复元素最后一个

每周算法小知识之二分查找

查找算法之“二分查找”

java 二分查找法

hiho36 二分·二分查找二分查找

二分查找