我在这段选择排序代码中犯了什么错误?

What mistake am I doing in this code for selection sort?

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

其中 indexOfMinimum 用于查找从索引 i 开始的子数组的最小值索引。而swap是一个广为人知的函数。

花括号有问题,请参阅 minIndex = indexOfMinimum(array,i);}。所以基本上 swap(array,minIndex,i); 只执行一次,不在循环体中。 您的代码样式更正:

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

你需要什么:

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