在Python的标准库中发现difflib.SequenceMatcher
类不适合我的需求之后,编写了一个通用的“diff”-ing模块来解决问题空间。经过几个月的思考更多关于它正在做什么之后,递归算法似乎在搜索更多内容,而不是通过重新搜索一个单独的“搜索线程”也可能已经检查过的序列中的相同区域。
diff
模块的目的是计算一对序列(列表,元组,字符串,字节,字节数组等)之间的差异和相似性。初始版本比代码的当前形式慢得多,速度提高了十倍。有没有人建议在递归算法中实现修剪搜索空间的方法以提高性能?
答案 0 :(得分:6)
您正在寻找的技术称为memoization。
答案 1 :(得分:0)
如果您有任何昂贵的方法,您可能使用相同的参数多次调用,那么您可以使用参数作为键来缓存方法的结果。