📄 折半查找.cpp
字号:
#include<iostream.h>
const int N=20;
int a[N]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int BinarySearch(int x)
{ /*在有序表a[N]中折半查找其关键字等于x的元素,若找到,则函数值为该元素在表中的位置*/
int low=0,high=N-1;
int mid;
while(low<=high){
mid=(low+high)/2;
if(x==a[mid]) return mid; //找到待查找元素
else if(x<a[mid]) return high=mid-1; //未找到,则继续在前半区进行查找
else low=mid+1; //继续在后半区间进行查找
}
return -1;
}
void main() //主函数
{
int b[3]={b[0],b[1],b[2]};
cout<<"输入要查找的数字:(以空格间隔开)\n";
cin>>b[0]>>b[1]>>b[2]; //键入要查找的数字
int f;
for(int i=0;i<3;i++){
f=BinarySearch(b[i]);
if(f!=-1)
cout<<"二分查找"<<b[i]<<"成功!"<<"下标为"<<f<<endl;//输出要查找的数字
else cout<< "二分查找" <<b[i]<<"失败!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -