在我的 shell 排序代码中,我使用了一个表达式来减少第一个 for 循环,它似乎不起作用,这就是为什么我的循环无限运行,有人可以解释为什么递减表达式不起作用吗?这是代码......
const shellSort = function (arr) {
let gap;
for (gap = Math.floor(arr.length / 2); gap >= 1; Math.floor(gap / 2)) {
for (let j = gap; j < n; j++) {
for (let i = j - gap; i >= 0; i - gap) {
if (arr[i + gap] > arr[i]) break;
else [arr[i], arr[i + gap]] = [arr[i + gap], arr[i]];
}
}
}
return arr;
};