【发布时间】:2022-09-23 07:29:03
【问题描述】:
我有一个简单的置换函数。它适用于少于 5 个项目的数组。但是当我在数组中有 40 个项目时,我的网络崩溃了。我曾经尝试将那个大数组拆分成小的子数组,但它错过了很多情况。还有其他方法可以解决这个问题吗?
const permute = (items) => {
const result = [];
const dsf = (i, items) => {
if (i === items.length) {
result.push(items.slice())
return;
}
for (let j = 0; j < items.length; j++) {
[items[i], items[j]] = [items[j], items[i]];
dsf(i + 1, items);
[items[i], items[j]] = [items[j], items[i]];
}
}
dsf(0, items);
return result;
}
-
首先搜索算法以查找数组的所有排列。这是starter。但一般来说,排列的数量由
(amount of elements)!描述。例如5! = 120而40! = 8.1591528e+47。所以你看到它迅速升级不;想知道您的网络应用程序崩溃了。
标签: javascript performance recursion crash permute