二分查找:
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
代码不多也就几行;主要 start = 0; end = nLength -1;while(start <= end);
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int bianrySearch(int a[], int nLength, int val)
{
int start = 0;
int end = nLength - 1;
int index = -1;
while(start<=end)
{
index = (start+ end)/2;
if(a[index] == val)
{
return index;
}
else if(a[index] < val)
{
start = index + 1;
}
else
{
end = index -1;
}
}
return -1;
}
int main(int argc, char** argv) {
int a[] = {0,1,2,3,4,5};
for(int i = 0; i < 6; i++)
{
cout<<a[i]<<"";
}
int k =bianrySearch(a,sizeof(a)/sizeof(int),5);
cout<<"5在的位置为:";
cout<<k<<endl;
return 0;
}