N'Ary树数据结构

时间:2012-09-04 18:57:05

标签: data-structures binary-tree

我正在查看大量的树数据结构,这确实令人困惑。就像我理解基本的二元树(也是它的众多实现,如BST红黑树等) 但我真正需要的是有关N'ary树的一些信息。 我需要研究各种类型的N'ary树以及它们的性能比较。 我见过的唯一N'ary树是B +树。我需要知道哪棵是最快的N'Ary树。即最优化的时间复杂度,空间复杂性没有问题。

1 个答案:

答案 0 :(得分:6)

通常,制作 K-ary$k > 2$的内容,与二叉树(<{0}相比,不会提供任何渐近优势。 })。例如,搜索平衡的二叉树可以在$k=2$时间内完成。搜索平衡的 k-ary树,将为您提供$\mathcal O \left(log_2 \ n\right)$。假设$\mathcal O \left(k\cdot log_k \ n\right)$是常量,$k$$log_k n$对于任何其他基数,等价渐近(对于大{{0},增长将是相同的})。也就是说,对于任何$log n$$n$$\mathcal O \left(log_i \ n\right)$相当于$\mathcal O \left(log_j \ n\right)$。因此,$i$

然而,实际上, k-ary树可能会导致更好的内存访问模式,因为每个节点都包含彼此相邻的$j$个节点,这意味着树的高度更短(维基百科给出了一个完整的 k-ary树}的高度$\mathcal O \left(k\cdot log_k \ n\right) =\ $\mathcal O \left(log \ n\right)$$k$,它对于任何常量$h$渐近相同,并且遍历由于叶子节点可以包含多个有序键,因此可能会跳得更少。