0

if (tl;dr) {

转到https://jsfiddle.net/y5v0ur4p/60/

关于如何更快地运行这种排列模式的任何想法?

} else {

我想知道是否有可能在 javascript 中编写一个非递归置换函数,以跟上递归置换函数的性能(例如堆算法)。几周后,我有了一个想法,到目前为止效果很好。这是解释https://jsfiddle.net/u68wyvzk/6/

如果解释留下不清楚的地方,请问:) }

4

1 回答 1

0

总是可以通过手动实现一个堆栈来消除递归,否则该堆栈将由 JavaScript 引擎隐式处理。使堆栈显式允许一些优化(因为我们不需要存储整个调用堆栈并且可以消除内部循环中的函数调用)并且即使计算复杂度保持不变,通常也会更快。

有关Heap 算法的高性能非递归实现,请参阅https://stackoverflow.com/a/37580979/1647737 。

于 2017-03-09T14:38:02.273 回答