0
這是更多的學術/家庭作業問題?如何改善選擇排序?
它會更好改變
if (index_outer !== index_min) {
$P.swap(arr, index_outer, index_min);
}
到
$P.swap(arr, index_outer, index_min);
,總是掉,因爲這是當index_outer
確實有最小值的特殊情況?這將是一個無所作爲的交換,但同時它不會破壞任何東西。因爲這不會經常發生,所以我會減少使用if
檢查的次數。
$P.swap = function (arr, i, j) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
};
$P.selectionSort = function (arr) {
var index_outer,
index_inner,
index_min,
length = arr.length;
for (index_outer = 0; index_outer < length; index_outer++) {
index_min = index_outer;
for (index_inner = index_outer + 1; index_inner < length; index_inner++) {
if (arr[index_inner] < arr[index_min]) {
index_min = index_inner;
}
}
if (index_outer !== index_min) {
$P.swap(arr, index_outer, index_min);
}
}
return arr;
};
如果你的代碼按預期工作,你的問題是關於改進,它似乎更適合http://codereview.stackexchange.com/ – elclanrs
我認爲這個問題屬於http://codereview.stackexchange.com不在這裏。 – jfriend00
我不是在尋找反饋意見,而是一個具體問題。 –