做,你所有的断言都通过了吗?这是错误

do, all of your assertions pass? This is the Error

交换位置和最小索引处的值。使用 swap 和 indexOfMinimum 函数编写选择排序。这就是问题所在,我的逻辑没有t know what错误,为什么我的代码没有运行 断言语句正确。

var swap = function(array, firstIndex, secondIndex) {
    var temp = array[firstIndex];
    array[firstIndex] = array[secondIndex];
    array[secondIndex] = temp;
};

var indexOfMinimum = function(array, startIndex) {

    var minValue = array[startIndex];
    var minIndex = startIndex;

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

var selectionSort = function(array) {
    var j;
    var smallest;
    for(j = 0; j < array.length; j++)
    {
        smallest = indexOfMinimum(array, 0);
        swap(array , j , smallest); 
    }
};

var array = [22, 11, 99, 88, 9, 7, 42];
selectionSort(array);
println("Array after sorting:  " + array);

Program.assertEqual(array, [7, 9, 11, 22, 42, 88, 99]);

您的代码中存在错误,请尝试 运行

    var swap = function(array, firstIndex, secondIndex) {
     var temp = array[firstIndex];
     array[firstIndex] = array[secondIndex];
     array[secondIndex] = temp;
    };
    
    var indexOfMinimum = function(array, startIndex) {
    
     var minValue = array[startIndex];
     var minIndex = startIndex;
    
     for(var i = minIndex + 1; i < array.length; i++) {
         if(array[i] < minValue) {
             minIndex = i;
             minValue = array[i];
         }
     } 
     return minIndex;
    }; 
    
    var selectionSort = function(array) {
     var j;
     var smallest;
     for(j = 0; j < array.length; j++)
     {
      smallest = indexOfMinimum(array, j);
      swap(array , j , smallest); 
     }
    };
    
    var array = [22, 11, 99, 88, 9, 7, 42];
    selectionSort(array);
    console.log("Array after sorting:  " + array);
在 selectionSort()

smallest = indexOfMinimum(array, 0);

应该是

smallest = indexOfMinimum(array, j);