【问题标题】:javascript non-recursive permutation algorithm performancejavascript非递归置换算法性能
【发布时间】:2016-06-05 07:33:29
【问题描述】:

if (tl;dr) {

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

关于如何更快地运行这种排列模式有什么想法吗?

} else {

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

如果解释不清楚,请问:) }

【问题讨论】:

标签: javascript permutation performance-testing heaps-algorithm


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-08-28
    • 2013-11-25
    • 2014-02-09
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多