查找 5 成功
查找失败
high比low小,则查找失败
//折半查找
typedef struct
{
int num;
}student;
typedef struct
{
int length;
student st[MAX + 1];
}student_t;
int Binary_Search(student_t st_t, student st)
{
int low = 1, high = st_t.length, mid = 0;
while (low<=high)
{
mid = (low + high) / 2;
if (st_t.st[mid].num == st.num)
{
return mid;
}
if (st_t.st[mid].num > st.num)
{
high = mid - 1;
}
if (st_t.st[mid].num < st.num)
{
low = mid + 1;
}
}
return 0;
}
int main(void)
{
student_t st_t = { 5,0,10,20,30,40,50 };
student st = {30};
printf("%d\n",Binary_Search(st_t, st));
return 0;
}