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
而不是排序数组。我也查看了其他一些代码,但没有解决。
答案 0 :(得分:6)
您需要以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]));