
int Binary_Search ( S_TBL tbl,KEY kx )
{ /* 在表tbl 中查找关键码为kx 的数据元素,若找到返回该元素在表中的位置,否则,返回0 */
int mid,flag=0;
low=1;high=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;
}


