【发布时间】:2011-04-19 12:06:37
【问题描述】:
大家好 我需要一些关于计算函数高度的时间复杂度的方向,该函数高度使用函数深度来获取树的高度。
所以函数是这样的:
height(Tree)
height h = 0;
for(each external node of T)
h = max(height, getdepth(external node));
该算法的最坏情况是,每个节点都处于同一级别? 在这种情况下,我们最终对所有外部节点做同样的事情,因为所有节点都将具有相同的高度 - n*(n-some_i) = n^2 ? 但是这样想——当树向左或向右不平衡时, 复杂性将再次成为 1+2+3+4...+n = n^2 ?
我有点困惑。这是正确的思考方式吗?
谢谢
【问题讨论】: