试写出二分查找的递归算法。

试写出二分查找的递归算法。


【正确答案】:



【题目解析】:

二分查找(Binary Search)的查找过程为每次用给定值与处在表的中间位置的数据元素的键值进行比较,确定给定值的所在区间,然后逐步缩小查找区间。重复以上过程直至找到或确认找不到该数据元素为止。
用给定值key与处在中间位置的数据元素T.elem[mid]的键值T.elem[mid] .key进行比较,可根据三种比较结果区分三种情况:
(1)key=T.elem[mid].key,查找成功,T.elem[mid]即为待查元素;
(2)key<T.elem[mid].key,说明若待查元素若在表中,则一定排在T.elem[mid]之前;
(3)key>T.elem[mid].key,说明若待查元素若在表中,则一定排在T.elem[mid]之后。

并用递归的思想进行逐步查找。


Top