我在这段选择排序代码中犯了什么错误?
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);
}
};
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);
}
};