if (tl;dr) {
转到https://jsfiddle.net/y5v0ur4p/60/
关于如何更快地运行这种排列模式,有什么想法吗?
} else {
我想知道是否有可能用javascript编写一个非递归置换函数,它可以跟上递归置换函数的性能(例如,堆的算法)。几周后,我有了一个想法,到目前为止效果还不错。下面是https://jsfiddle.net/u68wyvzk/6/的解释
如果解释中有什么不清楚的地方,只需询问:) }
发布于 2017-03-09 22:38:02
通过手动实现将由JavaScript引擎隐式处理的堆栈,始终可以消除递归。使堆栈显式可以进行一些优化(因为我们不需要存储整个调用堆栈,并且可以消除内部循环中的函数调用),而且通常会更快,即使计算复杂性保持不变。
有关堆算法的性能非递归实现,请参阅https://stackoverflow.com/a/37580979/1647737。
https://stackoverflow.com/questions/35577961
复制相似问题