【发布时间】:2021-05-21 01:23:44
【问题描述】:
我为bubbleSort写了这样一个交换函数:
function swap(a, b) {
tmp = a;
a = b;
b = tmp;
}
然后将其封装在bubbleSort中:
function bubbleSort(arr) {
let len = arr.length;
for (let i = 0; i < len; i++) {
for (let j = 0; j < len - 1; j++) {
// swap the elements
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]); // use swap here.
}
}
}
}
并使用以下方法对其进行测试:
arr = [34, 87, 21, 0, -11];
bubbleSort(arr)
但它保持不变,有什么问题?
【问题讨论】:
-
在 javascript 中,数字不是指针,您只更改 in 函数参数,没有其他内容。是的,
a和b的值会切换,但只会在该函数内部,没有别的你想要的会切换