二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
假设其数组长度为n,其算法复杂度为o(log(n))
代码:
#include <iostream>
using namespace std;
bool BinarySearch(int data[],int start, int end, int number){
while(start <= end){
int mid=(start + end ) / 2;
if(data[mid] == number){
return true;
}
if(data[mid] > number){
end = mid - 1;
}else{
start = mid + 1;
}
}
return false;
}
int main(){
int input[9]={0,1,1,1,3,4,5,6,7};
cout<< BinarySearch(input,0,8,8);
return 0;
}
运行结果: