function bubble(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = arr[temp];
}
}
}
return arr;
}
console.log(bubble([5, 12, 2, 4, 10]));
私の出力は
[2, undefined, undefined, 4, 10]
undefined
ソートされた配列の代わりに取得する理由がわかりません。他のコードも調べましたが、うまくいきませんでした。
あなたtemp
は交換のために取る必要があります。コメントを参照してください。
function bubble(arr) {
var len = arr.length;
for (var i = 0; i < len; i++) {
for (var j = 0; j < len; j++) {
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp; // take just temp
}
}
}
return arr;
}
console.log(bubble([5, 12, 2, 4, 10]));
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加