【发布时间】:2013-06-13 18:29:31
【问题描述】:
我想对一个长列表进行排序,所以我将所有元素放入 B-tree 中(每个元素需要 O(log n) 时间来插入)。
排序后,我需要回读元素。
你知道读取B树中所有对象需要多长时间吗?
谢谢!
【问题讨论】:
-
您可以在线性时间内将元素放入 B 树中。您不能插入日志时间。无论如何,排序需要 nlog(n) 时间,而有序遍历(这就是你所追求的)需要线性时间。最好的办法是使用
list.sort()并打印结果 -
单次插入不是 O(log n)) 吗?因此创建整个 b-tree 将是 O(n log n),这与 Python 内置排序的时间复杂度相同。
-
是的,我在写的时候就想到了这个。
标签: algorithm sorting data-structures big-o b-tree