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; }