首页 > 试题广场 >

给出折半查找的递归算法,并给出算法时间复杂度性分析。 类似本

[问答题]

给出折半查找的递归算法,并给出算法时间复杂度性分析。

类似本题的另外叙述有:

1)写出折半查找的算法,并要求它返回整型值i,当查找成功时,返回查找位置,查找不成功时返回0


解析:
int  BinSrch(rectype r[ ],int  k,low,high)
//在长为n的有序表中查找关键字k,若查找成功,返回k所在位置,查找失败返回0。{if(low≤high)  //low和high分别是有序表的下界和上界  {mid=(low+high)/2;   if(r[mid].key==k)return  (mid);   else if(r[mid].key>k)return  (BinSrch(r,k,mid+1,high));        else return  (BinSrch(r,k,low,mid-1));    }  else  return  (0);//查找失败。}//算法结束算法时间复杂度为O(logn)。

发表于 2017-05-16 02:24:37 回复(0)