📄 l82.cpp
字号:
//二分查找的实现
#include<iostream.h>
const int n=10 ;
typedef int elemtype; //n为表的最大长度
struct node
{elemtype key; //key为关键字,类型设定为elemtype
};
node R[n+1]={0,2,4,6,8,11,13,15,17,20,29};
int binsearch(node R[n+1], elemtype k)
{ int low=1, high=n;
while (low<=high)
{ int mid=(low +high)/2; //取区间中点
if(R[mid].key==k)
return mid; //查找成功
else if(R[mid].key>k)
high=mid-1; //在左子区间中查找
else low=mid+1; //在右子区间中查找
}
return 0; //查找失败
}
void main()
{ int k,j;
cout<<"线性表为:"<<endl;
for(j=1;j<=n;j++) cout<<R[j].key<<" ";
cout<<endl<<"请输入待查元素";
cin>>k;
j=binsearch(R,k);
cout<<endl<<"待查元素"<<k<<"的位置为:"<<j<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -