首页 新闻 会员 周边

递归和迭代的区别

0
[已解决问题] 解决于 2012-08-14 13:22

什么是递归?什么是迭代?

public int binSearch(int value)

{

    int upperBound, lowerBound, mid;

    upperBound = arr.Length - 1;

    lowerBound = 0;

    while (lowerBound <= upperBound)

    {

        mid = (upperBound + lowerBound) / 2;

        if (arr[mid] == value)

            return mid;

        else

            if (value < arr[mid])

                upperBound = mid - 1;

            else

                lowerBound = mid + 1;

    }

    return -1;

}

 这个程序是递归还是迭代?

C#
微澜的主页 微澜 | 初学一级 | 园豆:-1
提问于:2012-06-03 20:27
< >
分享
最佳答案
0
public int binSearch(int value)
{
    int upperBound, lowerBound, mid;
    upperBound = arr.Length - 1;
    lowerBound = 0;
    while (lowerBound <= upperBound)
    {
        mid = (upperBound + lowerBound) / 2;
        if (arr[mid] == value)
            return mid;
        else
           return value <arr[mid]? binSearch(mid-1):binSearch(mid+1);
       } 
return -1;
}

这样才是迭代。。

奖励园豆:5
土豆屋 | 菜鸟二级 |园豆:354 | 2012-06-04 10:48
其他回答(2)
0

找找定义:递归就是函数在内部调用自身,你这个是吗?

迭代:关于迭代,http://zh.wikipedia.org/wiki/%E8%BF%AD%E4%BB%A3

你看看你这个属于哪个?

ps:貌似哪个也不属于。。。

顾晓北 | 园豆:10844 (专家六级) | 2012-06-03 21:17
0

通俗的来讲,递归就是方法调用自身。迭代就是循环。

CarsonCui | 园豆:162 (初学一级) | 2012-06-05 14:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册