【问题标题】:How to optimize a recursive algorithm to not repeat itself?如何优化递归算法以使其不重复?
【发布时间】:2010-07-10 18:50:17
【问题描述】:

在 Python 的标准库中发现 difflib.SequenceMatcher 类不适合我的需要后,编写了一个通用的“差异”模块来解决问题空间。经过几个月的时间来更多地思考它在做什么之后,递归算法似乎比需要的搜索更多,它按照一个单独的“搜索线程”可能也检查过的顺序重新搜索相同的区域。

diff 模块的目的是计算一对序列(列表、元组、字符串、字节、字节数组等)之间的差异和相似性。初始版本比代码的当前形式慢得多,速度提高了十倍。有没有人建议在递归算法中实现一种修剪搜索空间以提高性能的方法?

【问题讨论】:

    标签: python optimization recursion diff


    【解决方案1】:

    您正在寻找的技术称为memoization

    【讨论】:

      【解决方案2】:

      如果您有任何昂贵的方法,您可能会使用相同的参数多次调用,那么您可以使用参数作为键来缓存方法的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-25
        • 2012-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-23
        • 1970-01-01
        • 2010-12-01
        相关资源
        最近更新 更多