Mik*_*our 5 algorithm excel spreadsheet
我有一个带公式的电子表格应用程序.我正在寻找检测公式中循环引用的最佳算法.当我使用公式的长链计算时,我当前的方法很慢并且使用了太多的内存.它涉及为每个公式保留所有家属的集合.因此,如果第一列单元格中的每一个都有一个公式,并且引用了之前的单元格,则第一个单元格的集合将为空.第二个单元格的集合只包含第一个单元格,第三个单元格的集合将包含单元格1和2,...,第1000个单元格的集合将包含之前的999个单元格.引入新公式时,将构建其依赖项集,如果集合包含新公式,则存在循环引用.但显然,对于这种情况,所需的时间和内存呈指数增长.
无论如何,您需要对细胞进行拓扑排序,以便能够在更改某些内容时快速计算细胞的值.拓扑分类程序还将循环检测为副产物.
见http://en.wikipedia.org/wiki/Topological_sorting