【发布时间】:2013-06-06 23:53:23
【问题描述】:
这不是家庭作业 我正在学习数据结构课程,我们最近完成了树。下课时,我的教授展示了这张照片。
ConcreteBTree 是一棵不会自平衡的二叉树。我对完成这些程序所需的时间有几个疑问。
为什么将 100,000 个顺序元素插入到 ConcreteBTree 中比在其中插入随机元素花费的时间要长得多?我的直觉是,由于元素是连续的,因此它所花费的时间应该少于插入 1,000,000 个随机元素所花费的时间。
为什么带有随机元素的ConcreteBTree的insert()和find()时间如此接近?是因为两者的时间复杂度相同吗?我认为 insert 是 O(1) 而 find 是 O(n)
我真的很想了解这里发生了什么,任何解释都将不胜感激。谢谢
【问题讨论】:
-
将顺序项插入非平衡树中几乎是您能做的最糟糕的事情。您最终将创建一个链表,因为您最终将始终仅使用左节点或仅使用右节点。
标签: c++ tree time-complexity