题目: 折半查找算法(出自2018-3)
算法思想:首先将给定值key做比较,若相等返回mid值;
若索引为mid的值大于key,则high = mid - 1;
若索引为mid的值小于key,则low = mid + 1;
直到low<=high,返回mid,否则查找失败。
int BSearch(SSTable T, int key) {
int mid;
int low = 0, high = T.length - 1;
while (low <= high) {
mid = (low + high) / 2;
if (T.elem[mid] == key)
return mid;
else if (T.elem[mid] > key)
high = mid - 1;
else if (T.elem[mid] < key)
low = mid + 1;
}
return -1;
}