您的位置:首页 > 编程语言 > C语言/C++

二分搜索代码(c++)

2011-01-08 14:28 281 查看
#include<iostream>

using namespace std;

template<typename Type>

int BinarySearch(Type a[],const Type& x,int n) //&x是引用型

{

int left=0,right=n-1;

int num=0; //测试

while(left<=right)

{

int middle=(left+right)/2;

cout<<"第"<<++num<<"次:"<<middle<<endl; //测试

if(x==a[middle])return middle;

if(x>a[middle])left=middle+1;

else right=middle-1;

}

return -1;

}

int main()

{

int a[10]={0,1,2,3,4,5,6,7,8,9},result;

int x;

do{

cout<<"(输入-1结束)请输入要二分搜索的数:";

cin>>x;

result=BinarySearch(a,x,10);

if(result!=-1)

{

cout<<"存在数:"<<x<<endl;

}

else

{

cout<<"不存在数:"<<x<<endl;

}

}while(x!=-1);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: