我的问题是关于实现启发式O(n)算法的动机。
引用:
有一些通用的解决方案来解决生成将一个树转换为另一个树所需的最小操作数量的算法问题。然而,现代算法的复杂度大约为O(n^3),其中n是树中元素的数量。
1.为什么将一棵树转换成另一棵树的复杂度是O(n^3)?
如果我们在React中使用它,显示1000个元素将需要进行大约10亿次比较。这太昂贵了。相反,React实现了一种基于两个假设的启发式O(n)算法:
- 两个不同类型的元素将产生不同的树。 - 开发人员可以通过key属性提示哪些子元素可能在不同的渲染之间保持稳定。
2.你能详细说明一下React实现中的启发式是什么吗? 3.这些假设使其在平均情况下成为O(n)吗?
引用:
有一些通用的解决方案来解决生成将一个树转换为另一个树所需的最小操作数量的算法问题。然而,现代算法的复杂度大约为O(n^3),其中n是树中元素的数量。
1.为什么将一棵树转换成另一棵树的复杂度是O(n^3)?
如果我们在React中使用它,显示1000个元素将需要进行大约10亿次比较。这太昂贵了。相反,React实现了一种基于两个假设的启发式O(n)算法:
- 两个不同类型的元素将产生不同的树。 - 开发人员可以通过key属性提示哪些子元素可能在不同的渲染之间保持稳定。
2.你能详细说明一下React实现中的启发式是什么吗? 3.这些假设使其在平均情况下成为O(n)吗?