【发布时间】:2020-07-04 16:38:11
【问题描述】:
我从冒泡排序算法的伪代码示例中翻译了这段代码,但是当我实现它时,它在错误的地方返回了 2 个值。
代码如下:
var numbers = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
var swapMade;
var temp;
function setup() {
swapMade = true;
while (swapMade == true) {
swapMade = false;
for (var i = 0; i < numbers.length - 2 ; i++) {
if (numbers[i] > numbers[i+1]) {
temp = numbers[i];
numbers[i] = numbers[i+1];
numbers[i+1] = temp;
swapMade = true;
}
}
}
console.log(JSON.stringify(numbers));
}
setup();
这会返回:
[2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
所以10 和1 放错地方了。
有人知道为什么吗?
【问题讨论】:
-
i < numbers.length - 2 -
是
i < numbers.length - 1或i <= numbers.length - 2
标签: javascript sorting bubble-sort