📄 8-2.c
字号:
#include "stdio.h"
#define maxsize 100
typedef char keytype;
typedef struct Info
{
keytype key;/*关键字*/
//其他数据
}rec;
typedef struct
{
rec item[maxsize+1];
int n; /*最后一个数据元素的下标*/
}sqtable;
int Compare(int index1,int index2)
{
if(index1>index2)
return 1;
else if(index1<index2)
return -1;
else
return 0;
}
int bin_search(sqtable R,keytype K)
{
int low=1,mid;
int hig=R.n;/*置搜索区间初值*/
while(low<=hig)/*区间长度不为0时继续搜索*/
{
mid=(low+hig)/2; /*找出区间的中间位置*/
switch (Compare(K,R.item[mid].key))
{
case 0:
return(mid);/*找到,返回位置mid*/
case -1:
hig=mid-1;
break; /*缩小区间*/
case 1:
low=low+1;
break;/*缩小区间*/
}
}
return(0);/*若区间长度已为0但仍不成功,则返回0,表示搜索不成功*/
}
void Initial(sqtable *R)
{
//初始化
}
void main()
{
int result;
keytype searched='a';
sqtable S;
Initial(&S);
result=bin_search(S,searched);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -