二分法查找有序表
int Search_Bin(SSTable ST, KeyType key) {
//在有序表ST中折半查找其关键字等于key的数据元素。若找到,则函数值为该元素在表中的位置, 否则为0
low = 1;
high = ST.length; //置查找区间初值
while (low <= high) {
mid = (low + high) / 2;
if {
(key == ST.R[mid].key)
return mid;
}
else if (key < ST.R[mid].key) {
high = mid - 1;
} else low = mid + 1;
return 0;
}
}
每一次找最中间(mid)的数来比较
就需要知道最左边的数(low)最右边的数字(high)然后进行排序
大前提是必须有序
然后我们求出Mid
用Mid跟目标数字进行比较