我的算法中找到数组的最大元素的缺陷在哪里?

时间:2015-12-28 18:26:19

标签: javascript algorithm recursion

为了感觉更聪明,我试图递归地编写每个算法,即使非递归解决方案更具可读性和效率(如"你好,世界!"呵呵)。我用一个简单的最大函数

开始这样做
function max ( arr )
{
     max_in_bounds(arr,0,arr.length);
}

function max_in_bounds ( A, i, j )
{
      // finds the max element in the range of 
    // indices [i, j) of the array A
    var diff = j - i;
    if ( diff === 1) 
    {
          return A[i];  
    }
    else if ( diff > 1 ) 
    {
             return Math.max(A[i], max_in_bounds(A,i+1,A.length));      
    }
}

var my_array = [1, 4, -3, 69]; 
console.log(max(my_array)); // Should print 69

但由于某种原因,我得到了undefined而我正试图找出原因。任何提示?

1 个答案:

答案 0 :(得分:1)

功能没有回复:

function max ( arr ){
     return max_in_bounds(arr,0,arr.length);
}

因此返回undefined。此外,我希望您只是为了学习目的而编写每个递归算法。