汗学院:javascript循环运行时间过长

时间:2017-06-05 19:49:52

标签: javascript algorithm

enter image description here

我正在阅读可汗学院的算法课程。我在https://www.khanacademy.org/computing/computer-science/algorithms/sorting-algorithms/p/challenge-find-minimum-in-subarray

代码挑战应该循环遍历数组find并返回子数组中的最小数字。我编写了我认为应该有效的代码,但是我在标题中收到了错误。为什么呢?

var indexOfMinimum = function(array, startIndex) {
    // Set initial values for minValue and minIndex,
    // based on the leftmost entry in the subarray:  
    var minValue = array[startIndex];
    var minIndex = startIndex;
    var i = minIndex + 1;
    for( i ; array.length ; i+1) {
        if( array[i]< minValue) {
            minIndex = i ;
            minValue = array[i];
        }
    } 

    // Loop over items starting with startIndex, 
    // updating minValue and minIndex as needed:

    return minIndex;
}; 

var array = [18, 6, 66, 44, 9, 22, 14];   
var index = indexOfMinimum(array, 2);

1 个答案:

答案 0 :(得分:4)

你的for循环的第二部分需要是实际测试某些东西的东西。现在它是一个无限循环,因为它的东西总是如此

这应该解决它:

for( i ; i < array.length ; i++) {
if( array[i]< minValue) {
    minIndex = i ;
    minValue = array[i];
    }
}