#include <stdio.h>
#include <stdlib.h>
#define listsize 20
typedef int keytype;
typedef struct
{
keytype key;
}recordtype;
typedef struct
{
recordtype r[listsize+1];
int length;
}recordlist;
void Bininput(recordlist *l)
{
int i=1;
printf("请输入数组内容(0截止):\n");
scanf("%d",&(l->r[i].key));
while (l->r[i].key!=0)
{
i++;
scanf("%d",&(l->r[i].key));
}
l->length=i+1;
}
int Binsrch(recordlist l , keytype k)
{
int low=1;
int high=l.length;
while(low<=high)
{
int mid=(low+high)/2;
if(k==l.r[mid].key)
return (mid);
else if (k<l.r[mid].key)
high=mid-1;
else
low =mid+1;
}
return (0);
}
int main()
{
int k ;
recordlist l;
Bininput(&l);
printf("\n请输入要查找的数:");
fflush(stdin);
scanf("%d",&k);
if(Binsrch(l,k)==0)
printf("查无此数");
else
printf("要查找的数%d的位置是:%d\n",k,Binsrch(l,k));
return 0;
}
| 星期 |
学习方法 |
学习时长 |
新增代码行 |
知识总结 |
| 星期一 |
|
|
|
|
| 星期二 |
|
|
|
|
| 星期三 |
看视频 |
2h |
|
|
| 星期四 |
|
|
|
|
| 星期五 |
|
|
|
|
| 星期六 |
|
|
|
|
| 星期日 |
看视频、做练习 |
2h |
50 |
折半查找 |
| 总计 |
看视频、做练习 |
4h |
50 |
折半查找 |