二分搜索代码(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;
}
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;
}
相关文章推荐
- 以 lower_bound 函数入门二分搜索(形成自己的代码风格)
- 二分搜索面试题C++
- 插入算法 二分搜索 读数据结构与算法-C++
- 正确的二分搜索代码
- 分治思想 - 二分搜索技术 - MATLAB代码 list是数据集合,x是要查找的数据。
- 二分搜索树排序binary search sorting的c++实现
- C++代码笔记(1)string搜索操作——find()
- A*搜索四方向寻路 C++代码实现
- 编程珠玑读书笔记之------>一个正确的二分搜索代码
- 二分查找c++代码
- 二分搜索树常见操作(C++版)
- 二分查找c++代码
- 索引服务(Indexing Service)实现文档搜索(C++代码完整实现)
- Binary Search 二分查找,二分搜索 C++
- 编程珠玑第五章习题五——C++实现二分搜索时进行错误检测
- SVM+HOG识别Matlab代码,序列前向搜索Malab代码,抗遮挡的STC跟踪C++代码
- 算法与数据结构-二分搜索 讲解与java代码实现
- vim搜索C++代码插件
- 算法导论第12章-搜索二叉树伪代码的C++程序全实现
- 关于C++二分搜索树的中序遍历和先序遍历