在发现Python标准库中的difflib.SequenceMatcher
类不适合我的需要之后,编写了一个通用的“diff”模块来解决问题空间。经过几个月的思考,递归算法似乎比需要的搜索更多,它按照一个单独的“搜索线程”可能已经检查过的顺序重新搜索相同的区域。diff
模块的目的是计算一对序列(list、tuple、string、bytes、bytearray等)之间的差异和相似性。最初的版本比代码的当前形式慢得多,速度提高了10倍。有人建议在递归算法中实现一种修剪搜索空间的方法来提高性能吗?
最佳答案
你要找的技术叫做memoization。
关于python - 如何优化递归算法以使其不重复?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3220433/