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

admin2014-12-25  4

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

选项

答案 int binlist(datatype a[n];int S,t;dataType x) /*n为元素个数,s,t分别为查找区间的上、下界*/ { if(s>t)return(0); /*查找失败*/ else{mid=(S++)/2; switch(mid)of (X[mid]:return(binlist(a,mid+1,t,x)); /*在高端区间上递归*/ } } }

解析 在待查区间的上、下界处设两个指针,由此计算出中间元素的序号,当中间元素大于给定值X时,接下来到其低端区间去查找;当中间元素小于给定值X时,接下来到其高端区间去查找;当中间元素等于给定值X时,表示查找成功,输出其序号。
转载请注明原文地址:https://kaotiyun.com/show/9ZVx777K
0

最新回复(0)