我试图让这个堆算法返回一个排列数组,而不是如下打印。我知道这可以通过在函数外部声明一个数组并推送到它来完成,但是我想避免这种方法。如何在不使用外部数组的情况下使其返回排列数组?
function heaps(arr, n) {
if (n === undefined) n = arr.length;
if (n <= 1) console.log(arr);
else {
for (let i = 0; i <= n - 1; i++)
{
heaps(arr, n-1);
if
(n % 2 === 0) [arr[n-1], arr[i]] = [arr[i], arr[n-1]];
else
[arr[n-1], arr[0]] = [arr[0], arr[n-1]];
}
}
}