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

时间:2015-06-07 09:16:03

标签: sorting 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是众所周知的功能。

1 个答案:

答案 0 :(得分:1)

大括号出现问题,请参阅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);
    }
};