📄 折半查找.c
字号:
/*折半查找*/
#include <stdio.h>
#define MAXSIZE 100
typedef int KeyType;
typedef struct
{
KeyType key;
}ElemType;
typedef struct
{
ElemType elem[MAXSIZE];
int length;
}S_TBL;
int Binary_Search(S_TBL tbl,KeyType kx)
{ //在表tb1中查找关键码为kx的数据元素,若找到,返回该元素在表中的位置,否则,返回0
int mid,flag=0;
int low=1,high=tbl.length;//设置初始区间
while(low<=high) //表空测试
{ //非空,进行比较测试
mid=(low+high)/2; //得到中点
if(kx<tbl.elem[mid].key)
high=mid-1; //调整到左半区
else if(kx>tbl.elem[mid].key)
low=mid+1; //调整到右半区
else
{
flag=mid;
break;
} //查找成功,元素位置放到flag中
}
return flag;
}
main()
{
S_TBL s={0,3,4,9,13,19};
KeyType x;
int f;
s.length=5;
printf("输入你要查找的数字:");
scanf("%d",&x);
f=Binary_Search(s,x);
if(f!=0)
printf("你查找的数字在第%d位",f);
else
printf("没找到");
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -