我正在为某种内存管理实现2-3-4树。在我的应用程序初始化时我想插入一些整数(将其作为输入 - 说n) 这种插入物的复杂性是什么? O(nloglog(n))的
答案 0 :(得分:1)
在2-3-4树上插入的复杂性是O(log(n))。
我们可以看到Wikipedia
的配额2-3-4棵树是4阶B树(Knuth 1998)
在B树上插入的复杂性是O(log(n)),2-3-4树也是如此。通过重复插入来初始化2-3-4树,我们可以说init的时间成本是O(n * log(n))。但我们可以期待一种特殊的方法来构建[link]:
在应用程序中,构建B树以表示大型现有数据集合然后使用标准B树操作以增量方式更新它通常很有用。在这种情况下,构造初始B树的最有效方法是不是连续地在初始集合中插入每个元素,而是直接从输入构造初始叶节点集,然后从这些构建内部节点。这种B树结构的方法称为批量加载。最初,每个叶子,但最后一个叶子有一个额外的元素,将用于构建内部节点。
时间成本可以是(n + n / 4 + n / 16 + ... + n /(4 ^ h))。基于几何级数的总和。我计算时间成本。它小于(4/3)* n。
请指出我在计算过程中是否有任何错误。