开发者社区> 问答> 正文

递归函数问题

使用函数 int binarysearch(int t,int x[],int n);
编写递归二分搜索算法,并且不使用其它辅助递归函数。
然后我编写的了如下代码:

int search(int t,int x[],int n)
{
int low=(n-1)/2;
if( x > x+n ) return -1;
if( t > x[low] )
{
    search(t,x+low+1,n);
}
else if( t < low ){
    search(t,x,low+2);
}
else
    return low; 
}

但是返回的位置却不是正确的,我明白为什么不正确,但是却找不到好的方法,谁能拯救一下我?

展开
收起
a123456678 2016-03-04 13:54:01 2267 0
1 条回答
写回答
取消 提交回答
  • 请看下面

    int search(int t,int x[],int n)
    {
    int low=(n-1)/2;
    
    if( x > x+n ) return -1;
    if( t > x[low] )
    {
        return search(t,x+low+1,n-low-1) + low +1;
    }
    else if( t < x[low] ){
        return search(t,x,low);
    }
    else
        return low; 
    }

    int search(int t,int x[],int n)
    {
    int low=(n-1)/2;
    
    if( x > x+n ) return -1;
    if( t > x[low] )
    {
        return search(t,x+low+1,n-low-1) + low +1;
    }
    else if( t < x[low] ){
        return search(t,x,low);
    }
    else
        return low; 
    }
    2019-07-17 18:52:12
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载